Leetcode 101. 对称二叉树
101. 对称二叉树 - 力扣(LeetCode) (leetcode-cn.com)

思路 ——>递归
1. 首先确定什么是对称二叉树,即树的左右子树是镜像的。因此我们要分别对左右子树进行递归。
2. 递归终止判断条件:如果左右子树的节点都为空,则返回true;如果其中一个为空,另一个不为空,则认为这个数是不对称的,返回false。
3. 递归过程:判断两个节点是否值相等;判断一个节点左子树和另一个节点的右子树是否相等;判断一个节点的右子树和另一个节点的左子树是否相等。
4.返回上面三个递归过程&&的结果。
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSymmetric(root *TreeNode) bool {
return check(root, root)
}
func check(node1, node2 *TreeNode) bool {
if node1 == nil && node2 == nil {
return true
}
if node1 == nil || node2 == nil {
return false
}
return node1.Val == node2.Val && check(node1.Left, node2.Right) && check(node1.Right, node2.Left)
}

浙公网安备 33010602011771号