力扣刷题之对称二叉树101题

在上一个节点的基础上比较子节点,分析可知需要用到递归,首先分析局部:抓住两个节点,比较二叉树是否对称需要满足:1.这两个节点值相同2.其中一个节点的左节点等于另一个节点的右节点,其中一个节点的右节点等于另一个节点的左节点。再分析全局:递归的终止条件为节点为空,所以前面先要判断该节点是否为空节点,再递归判断是否空子节点是否空节点

class Solution {
public:
    bool check(TreeNode *p, TreeNode *q) {
        if (!p && !q) return true;
        if (!p || !q) return false;//先要判断该节点是否为空节点,一个是空还是两个都空
        return p->val == q->val && check(p->left, q->right) && check(p->right, q->left);//递归判断是否空子节点是否空节点
    }

    bool isSymmetric(TreeNode* root) {//放入根节点,看成两棵树去做
        return check(root, root);
    }
};


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值