对称二叉树
一句话说明
判断一棵树是否对称,本质是看左右两棵子树是不是互为镜像。
Go 代码
func isSymmetric(root *TreeNode) bool {
if root == nil {
return true
}
return isMirror(root.Left, root.Right)
}
func isMirror(left, right *TreeNode) bool {
if left == nil || right == nil {
return left == right
}
if left.Val != right.Val {
return false
}
return isMirror(left.Left, right.Right) && isMirror(left.Right, right.Left)
}关键点
镜像比较不是“左对左、右对右”,而是“左对右、右对左”。