題目描述
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)
題解
首先理解題意,b是a的子結構的前提是,b樹是a樹的一部分,即從b的根節點開始,要與a其中乙個結點開始,結點值完全一致。
//從該節點開始判定是否相符
//從a樹的左孩子開始判定是否相符
//從a樹的右孩子開始判定是否相符
return
issubtree
(root1, root2)
||hassubtree
(root1.left, root2)
||hassubtree
(root1.right, root2);}
public
boolean
issubtree
(treenode root1, treenode root2)
//當a樹遍歷完,但是b樹沒有,證明不是子結構,返回false
if(root1 == null)
//當該節點一致時,同時向其孩子搜尋判定
if(root1.val == root2.val)
else
}
劍指offer (十七)樹的子結構
輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 二 解題分析 1.定義乙個函式,用於判斷兩棵樹是否相等,public boolean hassubtree treenode root1,treenode root2 2.查詢大的樹種是否含有擬子樹的根節點相等的...
劍指Offer(十七) 樹的子結構
牛客網刷題筆記記錄。參考自 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 要查詢樹a中是否存在和樹b結構一樣的子樹,我們可以分為兩步 第一步在樹a中找到和b的根結點的值一樣的結點r,第二步再判斷樹a中以r為根節點的子樹是不是包含和樹b一樣的結構。這裡使用遞迴...
劍指offer 樹的子結構
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 輸入兩顆二叉樹a,b,判斷b是不是a的子結構。解析 解決樹類問題的時候遞迴是乙個很好的解決方案,並且寫的程式簡單,理解起來也很容易。遞迴的時候謝了乙個函式來判斷當前兩個根節點對應的子樹是否相等 issubtree 不想...