1.描述
檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。
哪家公司問你的這個題?
樣例
1 1
/ \ / \
2 2 and 2 2
/ /
4 4
就是兩棵等價的二叉樹。
1 1
/ \ / \
2 3 and 2 3
/ \
4 4
就不是等價的。
2.分析
該題和轉殖二叉樹有異曲同工之秒,兩顆二叉樹必須擁有相同的結構,並且對應位置上的節點值也相同。
先判斷當前節點的值是否相同,之後按照相同的結構走下去判斷後面的節點值是否也相同。
下面給出我兩個ac**,第乙個**在函式外定義了乙個全域性變數flag作為標誌,第二個**直接定義了
bool函式。相比之下,好像第二個高階大氣一點o(∩_∩)o~
3.**
(1)/*** definition of treenode:
* class treenode
* }*/
class solution
if(b==null)
if(a->val!=b->val)
flag=1;
//coutleft);
panduan(a->right,b->right);
}bool isidentical(treenode* a, treenode* b)
};(2)
/*** definition of treenode:
* class treenode
* }*/
class solution
bool isidentical(treenode* a, treenode* b)
};4.總結
等價二叉樹,只有當兩棵樹結構和對應位置的節點值都相同時才等價。因此當前節點值比較完後
兩棵樹的節點應該按照同樣的結構遍歷子樹進而繼續判斷節點值。當兩個節點都為空時雖然沒有
節點值但他們也是相等的。
LintCode 等價二叉樹
題目描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4 就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。做題思路 本題給出的bool型別的函式來判斷二叉樹是否等價...
lintcode 等價二叉樹
1 題目 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。2 思路 對兩課二叉樹從以下幾種情況考慮 兩個均空,true...
Lintcode 等價二叉樹
1 問題描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4 2 解題思路 從根節點開始判斷兩顆樹是否相等,先判斷結構是否相等,在...