有趣的地方

有趣的地方

【LeetCode热题100】【二叉树】对称二叉树

题目链接:101. 对称二叉树 - 力扣(LeetCode)

递归解决,如果都空那么相等,否则有一个为空那么不相等,剩下就是都不为空,判断元素是否相等,接着递归判断左边的左子树是否等于右边的右子树,左边的右子树是否等于右边的左子树

class Solution {
public:
    bool isSymmetric(TreeNode *root) {
        return isSame(root, root);
    }

    bool isSame(TreeNode *p, TreeNode *q) {
        if (!p && !q) // 都空相等
            return true; // 不是都空,其中一个空不相等
        if (!q || !p)
            return false;
        return p->val == q->val && isSame(p->left, q->right) && isSame(p->right, q->left);
    }
};

发表评论:

Powered By Z-BlogPHP 1.7.3

© 2018-2020 有趣的地方 粤ICP备18140861号-1 网站地图