101. 对称二叉树
难度简单2227收藏分享切换为英文接收动态反馈
给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
- 树中节点数目在范围
[1, 1000]
内 -100 <= Node.val <= 100
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
func isSymmetric(root *TreeNode) bool {
// 如果根节点为空,则返回 true
if root == nil {
return true
}
// 判断根节点的左子树和右子树是否对称
return isMirror(root.Left, root.Right)
}
func isMirror(left, right *TreeNode) bool {
// 如果左子树和右子树都为空,则返回 true
if left == nil && right == nil {
return true
}else if left == nil && right != nil {
return false
}else if left != nil && right == nil {
return false
}
if left.Val != right.Val {
return false
}
outside:=isMirror(left.Left, right.Right)
inside:=isMirror(left.Right, right.Left)
return outside&&inside
}
标签:right,return,nil,true,二叉树,对称,101,root,left
From: https://www.cnblogs.com/suehoo/p/17034815.html