劍指offer17 樹的子結構

2021-10-02 19:39:42 字數 487 閱讀 7368

最近全國疫情嚴重,待在家裡沒事幹,馬上又要準備春招了,最近刷刷題,記錄一下!再說一句,武漢加油,大家出門記得戴口罩!

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

要查詢樹a中是否存在和樹b結構一樣的子樹,我們可以分為兩步:第一步,在樹a中找到和樹b的根結點值一樣的結點r;第二步,判斷樹a中以r為根結點的子樹是不是包含和樹b一樣的結構,b樹有的子節點,a樹必須有;b樹沒有的子節點,a樹可以有。

對於這兩步,第一步實際上就是樹的遍歷,第二步是判斷是否有相同的結構,這兩步都可以通過遞迴來實現。

public

class

solution

/* 2、比較是否包含

*/public

boolean

iscontain

(treenode node1,treenode node2)

}

劍指offer 17 樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 這是典型二叉樹遞迴問題。倆顆樹都不為空時,如果根節點相同,那麼判斷root2是不是root1的子樹,如果不是,那麼判斷root2是不是root1左子樹的子樹,如果還不是,那麼判斷root2是不是root1右子樹的...

劍指Offer (17)樹的子結構

題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 實現如下 分兩步 第一步 尋找與b樹根節點val相等的a樹節點。如果找到進入第二步,否則繼續尋找,直到找完a樹 第二步 以找的節點作為a樹子樹的根節點,同時遍歷兩棵樹,判斷是否所有節點都相同 特殊情況 ...

劍指offer(17)樹的子結構

19.1.11 題目描述 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思修很簡單 遍歷a樹,每個a節點與b對比,對比函式為solution。如下 function treenode x function hassubtree proot1,proot2 r...