美文网首页
101. Symmetric Tree

101. Symmetric Tree

作者: sarto | 来源:发表于2022-05-21 11:21 被阅读0次

    题目

    给定一个二叉树的根 root,检查它是否是自身的镜像。

    解析

    判断左子树和右子树是否相等。
    (1)非空节点,加入其左右子树,并叠加该层左右子树的非空元素个数
    (2)空节点,设其左右子树为空

    issym(left, right) bool

    伪代码

    if left == nil && right == nil
       return true
    if left == nil || right == nil
      return false
    return left.Val == right.val && issym(left.left, right.right) && issym(left,right, right.left)
    

    代码

    func isSymmetric(root *TreeNode) bool {
        if root == nil {
            return true
        }
        return issym(root.Left, root.Right)
    }
    
    func issym(left *TreeNode, right *TreeNode) bool {
        if left == nil && right == nil {
            return true
        }
        if left == nil || right == nil {
            return false
        }
        return left.Val == right.Val && issym(left.Left, right.Right) && issym(left.Right, right.Left)
    }
    
    image.png

    相关文章

      网友评论

          本文标题:101. Symmetric Tree

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