对称的二叉树

115 阅读1分钟

题目

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

思路

从根节点开始遍历,将一棵树想象成两棵树,一个先序遍历,一个镜像遍历,判断是否相等

class Solution {
public:
    bool f(TreeNode* r1,TreeNode* r2){
        if(!r1&&!r2)
            return true;
        if(!r1||!r2)
            return false;
        if(r1->val!=r2->val)
            return false;
        return (f(r1->left,r2->right))&&(f(r1->right,r2->left));
    }
    bool isSymmetric(TreeNode* root){
        return f(root,root);#左右都是根节点
    }
};

题目链接(leetcode-cn.com/problems/du…)