目录
题目:
示例:
分析:
代码:
题目:
示例:
分析:
给我们两棵二叉树,让我们判断这两棵二叉树的从左到右的叶子节点组成的叶子序列是否一致,即从左到右的叶子节点的数值包括顺序是否一致。
那么首先我们知道,叶子节点是左右子树都为空的节点,那么我们可以先把两棵树的叶子节点都给拿出来分别存放在容器里,然后比较这两个容器是否一致即可。
取出叶子节点的方法就是遍历二叉树,然后判断如果一个节点是叶子节点,就把叶子节点的数值存放在相应的容器里。
因为叶子序列是从左到右的叶子节点的数值,那么我们在递归遍历二叉树的时候就要先遍历二叉树的左子树。
可以参考下面的代码和动图理解理解获取叶子节点的方法。文章来源:https://www.toymoban.com/news/detail-660211.html
文章来源地址https://www.toymoban.com/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;
}
};
到了这里,关于【LeetCode75】第三十四题 叶子相似的树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!