首页 > 其他 > 详细

二叉树——101. 对称二叉树

时间:2021-04-18 22:29:05      阅读:29      评论:0      收藏:0      [点我收藏+]

二叉树——101. 对称二叉树

题目:

技术分享图片

思路:

此题就是考的细,原理上不难,还是递归,那么遍历顺序是啥,答案就是后序遍历,有人结合代码看可能不理解,觉得这明明是前序遍历啊,先判断节点,再对左右节点进行递归。这是一个误导,还有就是这次写的代码可读性比较差,那么为啥是后序遍历呢,因为他是先递归然后再判断是否相等。所以是后续遍历。反正核心思想就是:比较外侧是否相等,在比较内称是否相等,都相等就对称。

其次这道题的终止条件也要明确。一共有一下五点,写的时候可以简化。

1.左为空,右不为空 false

2.左不为空,有为空 false

3.左右都为空 true

4.左右都不为空,比较节点数值不相同 false

5.相同就是 true 执行递归逻辑

以上就是这道题的全部思路剩下就是开干。

代码:

class Solution {
public:
    bool check(TreeNode* left, TreeNode* right){
        // 首先排除空节点的情况
        if(left == NULL && right == NULL) return true;
        if (left == NULL || right == NULL) return false;
        return (left->val == right->val) && check(left->left, right->right) && check(left->right, right->left);
    }

    bool isSymmetric(TreeNode* root) {
        return check(root, root);
    }
};

Rank:

技术分享图片

Tips:

刚才看了个神奇的思路,分享一下。

技术分享图片

其实原理是一样的,但人家就是说的让你茅塞顿开hhh。

二叉树——101. 对称二叉树

原文:https://www.cnblogs.com/lzyrookie/p/14674370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!