题解 | #相逆叶子#

相逆叶子

https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3

最好理解的代码,真的好理解。

知识点:

二叉树/DFS

分析:

用个不笨也笨的方法吧,对每一个二叉树使用DFS存储其叶子节点,存储在一个数组里,然后判断回文。

ac代码C++;

	vector<int> leaf;
    int cnt1 = 0;
    void dfs(TreeNode* root1) {
        if (!root1->left && !root1->right) {
            leaf.push_back(root1->val);
            cnt1++;
            return;
        }
        if(root1->left)
            dfs(root1->left);
        if(root1->right)
            dfs(root1->right);
    }
    bool leafSimilar(TreeNode* root1, TreeNode* root2) {
        dfs(root1);
        dfs(root2);
        int i = 0;int j = cnt1 - 1;
        while(i < j){
            if(leaf[i] == leaf[j]) {
                i++;j--;
            }else return false;
        }
        return true;
    }

全部评论

相关推荐

扭转乾坤_:现在企业都是学华为,一直通过丢池子里,最后捞
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务