目錄
題目:
示例:
分析:
代碼:
題目:
示例:
分析:
?給我們兩棵二叉樹,讓我們判斷這兩棵二叉樹的從左到右的葉子節(jié)點(diǎn)組成的葉子序列是否一致,即從左到右的葉子節(jié)點(diǎn)的數(shù)值包括順序是否一致。
那么首先我們知道,葉子節(jié)點(diǎn)是左右子樹都為空的節(jié)點(diǎn),那么我們可以先把兩棵樹的葉子節(jié)點(diǎn)都給拿出來分別存放在容器里,然后比較這兩個容器是否一致即可。
取出葉子節(jié)點(diǎn)的方法就是遍歷二叉樹,然后判斷如果一個節(jié)點(diǎn)是葉子節(jié)點(diǎn),就把葉子節(jié)點(diǎn)的數(shù)值存放在相應(yīng)的容器里。
因為葉子序列是從左到右的葉子節(jié)點(diǎn)的數(shù)值,那么我們在遞歸遍歷二叉樹的時候就要先遍歷二叉樹的左子樹。
?可以參考下面的代碼和動圖理解理解獲取葉子節(jié)點(diǎn)的方法。文章來源:http://www.zghlxwxcb.cn/news/detail-660211.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-660211.html
代碼:
class Solution {
public:
void find(TreeNode* root,vector<int>& vals){
if(root==nullptr) return ;
if(root->left==nullptr&& root->right==nullptr){
vals.push_back(root->val);
return;
}
find(root->left,vals);
find(root->right,vals);
}
bool leafSimilar(TreeNode* root1, TreeNode* root2) {
vector<int> v1,v2;
find(root1,v1);
find(root2,v2);
return v1==v2;
}
};
到了這里,關(guān)于【LeetCode75】第三十四題 葉子相似的樹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!