LeetCode 872 题解

872. Leaf-Similar Trees

题目大意:给你两颗二叉树,问你他们从左往右的所有叶子节点是否一样

解题思路:直接递归遍历,所有的叶子

class Solution {
private:
    void dfs(TreeNode* root,vector<int> &vt)
    {
        if(root==NULL) return ;
        if(root->left!=NULL)
            dfs(root->left,vt);
        if(root->right!=NULL)
            dfs(root->right,vt);
        if(root->left==NULL && root->right==NULL)
            vt.push_back(root->val);

        return ;
    }
public:
    bool leafSimilar(TreeNode* root1, TreeNode* root2) {
        vector<int> vt1;
        vector<int> vt2;

        dfs(root1,vt1);
        dfs(root2,vt2);
        if(vt1.size()!=vt2.size()) return false;
        for(int i=0;i<vt1.size();i++)
        {
            if(vt1[i]!=vt2[i]) return false;
        }
        return true;
    }
};

猜你喜欢

转载自blog.csdn.net/u011439455/article/details/81171036