Symmetric Tree,对称树

Posted 32ddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

算法分析:和same tree比较像,都可以用递归方法来解决。

public class SymmeticTree 
{
	public boolean isSymmetric(TreeNode root) 
	{
		if (root == null) 
		{
			return true;
		}
		return isSymmetric(root.left, root.right);
	}

	public boolean isSymmetric(TreeNode left, TreeNode right) 
	{
		if (left == null && right == null) 
		{
			return true;
		}
		else if ((left == null && right != null)
				|| (right == null && left != null) || (left.val != right.val))
		{
			return false;
		}
		else
		{
			return isSymmetric(left.left, right.right)
					&& isSymmetric(left.right, right.left);
		}
	}
}

 

以上是关于Symmetric Tree,对称树的主要内容,如果未能解决你的问题,请参考以下文章

[Leetcode 101]判断对称树 Symmetric Tree

101. Symmetric Tree 二叉树是否对称

LeetCode101. Symmetric Tree-对称树/镜像树

leetcode-Symmetric Tree 对称树

[LeetCode]101. Symmetric Tree对称树

LeetCode-面试算法经典-Java实现101-Symmetric Tree(对称树)