26 樹的子結構

2021-10-03 05:23:00 字數 858 閱讀 8981

輸入兩棵二叉樹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

限制:

解法:使用兩個遞迴,第乙個遞迴用來造到子樹的根節點在a樹中的位置。找到位置以後,利用第二個遞迴檢測從根出發,下面的結構是否是一樣的。

solution:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

if(!result)

if(!result)

}return result;

}bool tree1hastree2(treenode* a, treenode* b)

return tree1hastree2(a->left, b->left) && tree1hastree2(a->right, b->right);

}};

26 樹的子結構

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 遍歷樹a中的節點,看與樹b根節點的值是否相等,相等的話,遞迴比較左右子樹。不相等的話,接著遍歷樹a。樹的遍歷也是使用遞迴的方式進行實現。需要注意的是,由於空樹不是任意乙個樹的子結構,所以只有當兩樹都不為空時...

26 樹的子結構

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

面試題26 樹的子結構

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