劍指offer樹的子結構

2021-10-10 20:44:02 字數 650 閱讀 3379

輸入兩棵二叉樹a和b,判斷b是不是a的子結構。(約定空樹不是任意乙個樹的子結構)

b是a的子結構, 即 a中有出現和b相同的結構和節點值。

例如:給定的樹 a:

3/ \

4 5

/ \1 2

/ \7 8

給定的樹 b:4 /

1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。

a中有出現和b相同的結構和節點值。如上圖,a樹節點值為1仍然有左右節點,但是輸出true;說明只需要有相同結構和節點值就行。

演算法思想:

需要遍歷a的每個節點,尋找到a的乙個節點和b的根節點相等,然後從當前節點開始直到b為null每個節點值都要相等。

採用先序遍歷樹a,遍歷的每個節點和b判斷是否具有相同子結構。

class

solution

boolean

recur

(treenode a, treenode b)

}

劍指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...