/*兩個序列是否對應相同搜尋樹的判別
兩種判別方法
1、一種為建兩棵樹
2、一種為不建樹
3、建一棵樹,再判別其他序列是否和該樹一樣
使用第三種思路:
1、搜尋樹怎麼表示*/
#include#include#includeusing namespace std;
typedef struct treenode *tree; //樹的資料結構
struct treenode;
tree newnode(int v) //建立樹的節點
tree insert(tree t,int v) //將資料插入樹中
else
}return t;
} tree maketree(int n) //建樹過程
else
else return 0;
}} int judge(tree t,int n)
void freetree(tree t) //釋放t的空間,也就是把其中的資料清除掉
int main()
{ /*讀入n和l根據第一行序列建樹t,依據樹t分別判別後面的
l個序列是否能與t形成,同一搜尋樹並輸出結果*/
int n,l,i;
tree t;
scanf("%d",&n);
while(n){
scanf("%d",&l);
t=maketree(n);
for(i=0;i測試資料
判斷兩棵樹是否相等
思路 兩棵樹相等當且僅當roota data rootb data,且a和b的左右子樹相等或左右子樹互換相等 用遞迴的方式進行求解 1 if 兩棵樹都為空 返回true 2 if 兩棵樹中一棵為空,另一棵不為空 返回false 3 if 資料相等 else if 第一棵樹的左子樹與第二棵樹的右子樹相...
LeetCode100 判斷兩棵樹是否相同。
相同的樹 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 11 2323 1,2,3 1,2,3 輸出 true示例 2 輸入 11 22 1,2 1,null,2 輸出 false示例 3 輸入 11 2112 1,...
LeetCode 檢查兩棵樹是否相同
相同的樹 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。思路 1.彙總思想 根 左子樹 右子樹 遞迴 2.相等的條件 值相等 p.val q.val 遞迴兩個樹的左子樹是否相等 遞迴兩個樹的右子樹是否相等 3.終止條件 p q為空時...