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

2021-08-30 22:05:26 字數 926 閱讀 9862

鏈結

牛客:樹的子結構

leetcode:劍指 offer 26. 樹的子結構

題目描述

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

思路要滿足b是a的子結點,最起碼先保證b的根結點和a中某個子樹相同,這樣可以分為三種情況

我們還需要寫乙個函式用於當b根結點已經在a中找到了 判斷b是否存在於a中。

**

public

class

solution

return

false;}

public

boolean

issubtree

(treenode root1, treenode root2)

return

false;}

}

擴充套件

這道題還可以擴充套件:572. 另乙個樹的子樹

兩道題的區別在於劍指offer上的那題子樹可以是不完整的,但是這一題子樹是完整的。

class

solution

return

check

(s, t)

||issubtree

(s.left, t)

||issubtree

(s.right, t);}

public

boolean

check

(treenode s, treenode t)

if(s == null || t == null || s.val != t.val)

return

check

(s.left, t.left)

&&check

(s.right, t.right);}

}

劍指offer系列 樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 public class treenode public class solution return isa root1,root2 isa root1.left,root2 isa root1.right,ro...

python劍指offer系列樹的子結構

題目 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 解法 對於兩棵二叉樹來說,要判斷b是不是a的子結構,首先第一步在樹a中查詢與b根節點的值一樣的節點。通常對於查詢樹中某乙個節點,我們都是採用遞迴的方法來遍歷整棵樹。第二步就是判斷樹a中以r為根節點的子樹是不...

劍指offer 樹的子結構

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