Java 劍指offer樹的子結構

2021-09-23 10:47:52 字數 889 閱讀 8374

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

package 牛客;

public

class

treenode

}

主思想採用遞迴實現遍歷二叉樹,從根節點開始判斷。

如果根節點相同則遞迴呼叫panduan(),

如果根節點不相同,則判斷tree1的左子樹和tree2是否相同,

再判斷右子樹和tree2是否相同。

package 牛客;

public

class 樹的子結構

// 如果找不到,那麼就再去root的左子樹當作起點,去判斷時候包含tree2if(

!result)

// 如果還找不到,那麼就再去root的右子樹當作起點,去判斷時候包含tree2if(

!result)

}return result;

}public

static

boolean

panduan

(treenode node1, treenode node2)

// 如果tree2還沒有遍歷完,tree1卻遍歷完了。返回false

if(node1 == null)

// 如果其中有乙個點沒有對應上,返回false

if(node1.val != node2.val)

// 如果根節點對應的上,那麼就分別去子節點裡面匹配

return

panduan

(node1.left, node2.left)

&&panduan

(node1.right, node2.right);}

}

劍指Offer 樹的子結構 Java

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 總體思路就是 遍歷樹 a 當遇到 a 中某乙個結點 b的時候,則 同時遍歷比較a和b的各個子結點。如果相同 則是子結構,不同 則不是 兩個遞迴巢狀,外層遞迴是 遍歷結點與 b的根是否相等,內層遞迴是當根相等,判斷...

《劍指offer》系列 樹的子結構(Java)

鏈結 牛客 樹的子結構 leetcode 劍指 offer 26.樹的子結構 題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結點 思路要滿足b是a的子結點,最起碼先保證b的根結點和a中某個子樹相同,這樣可以分為三種情況 我們還需要寫乙個函式用於當b根結點...

劍指offer 樹的子結構

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 輸入兩顆二叉樹a,b,判斷b是不是a的子結構。解析 解決樹類問題的時候遞迴是乙個很好的解決方案,並且寫的程式簡單,理解起來也很容易。遞迴的時候謝了乙個函式來判斷當前兩個根節點對應的子樹是否相等 issubtree 不想...