1. 程式人生 > 遊戲資訊 >網易將收購《底特律攻略》開發商全部股份|壞掉的PS5可能用作挖礦|

網易將收購《底特律攻略》開發商全部股份|壞掉的PS5可能用作挖礦|

思路:

樹用遞迴就對了。

相同的樹定義是結點值相同,樹的結構也相同。

有這麼幾種情況:

1. 結點都為null, 代表都是空結點,沒問題。

2. 結點一個是null,一個不是null, 這種情況樹的結構肯定是不同的。

3. 結點都為非空結點,這就要求結點值相同,然後遞迴的去比較左子樹和右子樹了。

 

程式碼:(這個程式碼看上去比較難懂,其實想一下就明白了,這個是idea優化過後的程式碼)

1 var isSameTree = function(p, q) {
2         if(p && q){
3             return p.val === q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
4 }else return !(p || q); 5 };

其實我想寫的是下面這個,這個比較人類友好:

1 var isSameTree = function(p, q) {
2         if(p && q){
3             return p.val === q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
4         }else if(p || q){
5             return false
; 6 }else{ 7 return true; 8 } 9 };