101. 对称二叉树 简单
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
进阶:
你可以运用递归和迭代两种方法解决这个问题吗?
代码参考:
package main
func main() {
// just bingo
}
func isSymmetric(root *TreeNode) bool {
return mirror(root, root)
}
// 镜像树:递归交换左右子树
func mirror(node1, node2 *TreeNode) bool {
if node1 == nil && node2 == nil {
return true
}
if node1 == nil || node2 == nil {
return false
}
// 左子树与右子树值一致
return node1.Val == node2.Val && mirror(node1.Left, node2.Right) && mirror(node1.Right, node2.Left)
}
最后编辑: kuteng 文档更新时间: 2021-06-05 10:16 作者:kuteng