美文网首页
对称二叉树

对称二叉树

作者: 422ccfa02512 | 来源:发表于2020-11-13 19:27 被阅读0次

    题目

    难度级别:简单

    给定一个二叉树,检查它是否是镜像对称的。

    例如

    二叉树 [1,2,2,3,4,4,3] 是对称的。

        1
       / \
      2   2
     / \ / \
    3  4 4  3
    

    但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

        1
       / \
      2   2
       \   \
       3    3
    

    进阶:

    你可以运用递归和迭代两种方法解决这个问题吗?

    解题思路

    通过深度周游算法,递归遍历分别比较2个节点,因为对称关系,所以2个节点需要满足

    1: 当前节点值相同
    2: 当前节点的left与另一个节点的right值相同;当前节点的right与另一个节点的left值相同。

    之后就可以通过递归进行比较了。

    const isSymmetric = function(root) {
    
        const check = function(p,q) {
            if (p === null && q === null)
                return true
            else if (p === null || q === null || p.val !== q.val)
                return false
            else
                return check(p.left,q.right) && check(p.right, q.left)
        }
    
        return check(root,root)
    };
    

    题目来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/symmetric-tree

    相关文章

      网友评论

          本文标题:对称二叉树

          本文链接:https://www.haomeiwen.com/subject/kcsbbktx.html