leetcode刷题笔记(Golang)--101. Symmetric Tree

101. Symmetric Tree

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

1

/
2 2
/ \ /
3 4 4 3

But the following [1,2,2,null,3,null,3] is not:

1

/
2 2
\
3 3

Note:
Bonus points if you could solve it both recursively and iteratively.

func isSymmetric(root *TreeNode) bool {
	return isSymmetricCore(root, root)
}

func isSymmetricCore(root1 *TreeNode, root2 *TreeNode) bool {
	if root1 == nil && root2 == nil {
		return true
	}
	if root1 == nil || root2 == nil {
		return false
	}
	res := root1.Val == root2.Val
	return res && isSymmetricCore(root1.Left, root2.Right) && isSymmetricCore(root1.Right, root2.Left)
}
发布了98 篇原创文章 · 获赞 0 · 访问量 1483

猜你喜欢

转载自blog.csdn.net/weixin_44555304/article/details/104381868