LeetCode 面試題26 樹的子結構

2022-07-14 16:18:14 字數 1328 閱讀 9222

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

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

例如:

給定的樹 a:

3/ \

4   5

/ \1   2

給定的樹 b:

4 / 1

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

示例 1:

輸入:a = [1,2,3], b = [3,1]

輸出:false

示例 2:

輸入:a = [3,4,5,1,2], b = [4,1]

輸出:true

限制:

與本題相似的題目,可對比學習:

步驟:b是否是a的一部分,若為false則進入第2步,否則結束;

b是否是a某子樹的一部分,遞迴處理直至某一層返回true或遞迴處理完所有節點;

演算法複雜度:m為a的總節點數,n為b的節點數

package leetcode;

/** * @author zhoujie

* @date 2023年5月22日 下午6:03:04

* @description: 面試題26. 樹的子結構

* */

public class leetcode_offer_26

// definition for a binary tree node.

class treenode_offer_26

}class solution_offer_26 else if (a != null && b != null) else

} /**

* @author: zhoujie

* @date: 2023年5月22日 下午6:07:56

* @param: @param a

* @param: @param b

* @param: @return

* @return: boolean

* @description: 判斷b是否是a某子樹的一部分

* */

private boolean checksubtree(treenode_offer_26 a, treenode_offer_26 b) else if (a != null && b != null && a.val == b.val) else

}}

LeetCode 面試題26 樹的子結構

輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2 給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。示例 1 輸入 a 1,2,3 b 3,...

面試題26 樹的子結構

題目 輸入兩棵二叉樹a和b,判斷b是不是a的子結構。includeusing namespace std struct binarytreenode bool doestree1hastree2 binarytreenode proot1,binarytreenode proot2 bool equ...

面試題26 樹的子結構

題目 輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。示例 輸入 a 3,4,5,1,2 b 4,1 輸出 true 方法1 遞迴解法 思想 先再 a 中找到根結點相同的子樹,然後再判斷這顆子樹是否是我們要找到的子樹...