面試題26 樹的子結構

2021-10-12 01:16:44 字數 769 閱讀 7761

題目:輸入兩棵二叉樹a和b,判斷b是不是a的子結構。(約定空樹不是任意乙個樹的子結構)b是a的子結構, 即 a中有出現和b相同的結構和節點值。

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

輸出:true

方法1:遞迴解法

思想:先再 a 中找到根結點相同的子樹,然後再判斷這顆子樹是否是我們要找到的子樹

class

solution

if(result ==

false)if

(result ==

false)}

return result;

}public

static

boolean

checksubstructure

(treenode root1, treenode root2)

// root2 不為空的時候,root1 為空,那麼返回 false

if(root1 == null)

if(root1.val != root2.val)

// 再同時判斷左右子樹是否相同

return

checksubstructure

(root1.left, root2.left)

&&checksubstructure

(root1.right, root2.right);}

}

面試題26 樹的子結構

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

面試題26 樹的子結構

nowcoder header content type text html charset utf 8 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 p148 class treenode function hassubtree proot1,proot2...

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,...