根據資料序列判斷兩棵樹是否一樣

2021-09-26 02:25:31 字數 938 閱讀 2120

/*兩個序列是否對應相同搜尋樹的判別

兩種判別方法

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為空時...