101.对称二叉树
go
func isSymmetric(root *TreeNode) bool {
if root == nil {
return true
}
var compare func(left, right *TreeNode) bool
compare = func(left, right *TreeNode) bool {
if left != nil && right == nil {
return false
} else if left == nil && right != nil {
return false
} else if left == nil && right == nil {
return true
} else if left.Val != right.Val {
return false
}
outside := compare(left.Left, right.Right)
inSide := compare(left.Right, right.Left)
return outside && inSide
}
return compare(root.Left, root.Right)
}