美文网首页
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