对称二叉树

18 阅读1分钟

递归左、右节点,秒了

关键 A B 节点值相等,且 A.左=B.右,且 A.右=B.左

func isSymmetric(root *TreeNode) bool {
	left, right := root, root
	return isSymmetricTwo(left, right)
}

func isSymmetricTwo(left, right *TreeNode) bool {
	if left == nil || right == nil {
		if left == nil && right == nil {
			return true
		}
		return false
	}
	if left.Val == right.Val && isSymmetricTwo(left.Right, right.Left) && isSymmetricTwo(left.Left, right.Right) {
		return true
	}
	return false
}