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