Skip to content

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)
}
本站访客数 人次 本站总访问量