首页 > 代码库 > Symmetric Tree,对称树

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,对称树