給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。
示例 1:
輸入:11
/ \ / \
2323[1,
2,3]
,[1,
2,3]
輸出:true
示例 2:
輸入:11
/ \
22[1,2]
,[1,null,2]
輸出:false
示例 3:
輸入:11
/ \ / \
2112[1,
2,1]
,[1,
1,2]
輸出:false
簡單遞迴:
/**
* definition for a binary tree node.
* struct treenode
* treenode(int x) : val(x), left(nullptr), right(nullptr) {}
* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}
* };
*/class
solution
else
return
false;}
};
廣度優先:
#include
class
solution
if(n1-
>right!=
null)if
(n2-
>left!=
null)if
(n2-
>right!=
null)}
return q1.
empty()
&&q2.
empty()
;//兩個佇列是不是空的,若仍有節點沒處理,說明乙個樹多出節點了,結構不同}}
;
建立兩個佇列,初始加入兩個樹的根節點。每次把隊首節點出隊處理(檢查左右子節點是否為空,不為空則加入佇列等待下次處理,並判斷當前兩個佇列取出的節點的值是否相等,不相等則false,相等則繼續)。
當兩個佇列都不為空時,一直判斷節點。
最後判斷是否兩個佇列都是空的,都是空的表示所有節點經處理發現對應相等。非空說明兩樹結構不同,false。
leetcode 相同的樹
給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 2 1 1...
LeetCode 之相同的樹
問題描述 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 ...
LeetCode 第100題 相同的樹
給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true 示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false 示例 3 輸入 1 1 2 1...