輸入兩棵二叉樹a,b,判斷b是不是a的子結構。
我們規定空樹不是任何樹的子結構。
樣例樹a:
8
/ \8 7
/ \9 2
/ \4 7
樹b:
8
/ \9 2
返回true,因為b是a的子結構。
思路不難,就是一定要將情況考慮全面。
首先要找到兩個樹的同一起點,如果不存在這樣的起點,則必不可能。
如果找到了同一起點,則進入下一步,即判斷a與b從同一根出發,能否把b消耗完,即b遇到null,返回true,但是a遇到null,b還沒null,那返回false,兩者val不相等也返回false。
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
public
boolean
resc
(treenode a, treenode b)
//保證結構相等
return
resc
(a.left,b.left)
&&resc
(a.right,b.right);}
}
劍指offer 樹的子結構
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 輸入兩顆二叉樹a,b,判斷b是不是a的子結構。解析 解決樹類問題的時候遞迴是乙個很好的解決方案,並且寫的程式簡單,理解起來也很容易。遞迴的時候謝了乙個函式來判斷當前兩個根節點對應的子樹是否相等 issubtree 不想...
劍指offer 樹的子結構
題目描述 輸入兩顆二叉樹a,b,判斷b是不是a的子結構。這實際上二叉樹遍歷演算法的一種應用,要在原二叉樹中查詢是否具有某課子樹,只需要判斷每個節點是否都在二叉樹中是否出現即可。所以需要先判斷頭結點,只有頭結點符合要求才繼續比較其子樹是否符合,一樣依次從頭結點開始比較直到其左右子樹進行比較,如果都符合...
劍指offer 樹的子結構
大體思路如下 在程式遞迴過程中,記得注意遞迴的出口以及空指標的處理 主程式中在root1 root2非空的條件下才能去判斷 判斷judge函式中,一些邊界出口為 if root2 null return true if root1 null return false public class sol...