判断一棵树是否是镜像的。 可以从根节点的左右子节点开始判断。根据子节点是否同时为空及值是否相同判断当前是否还是镜像的。 如果还是,则递归比较left.right==right.left和left.left==right.right这两个条件从而递归判断是否是镜像的。
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
boolean res=true;
public boolean isSymmetric(TreeNode root) {
if(root==null)
{
return true;
}
fun(root.left,root.right);
return res;
}
void fun( TreeNode left,TreeNode right )
{
if(res==false)
{
return ;
}
if( left==null && right==null )
{
return;
}
if( left==null||right==null )
{
res=false;
return ;
}
if(left.val!=right.val)
{
res=false;
return ;
}
fun(left.left,right.right);
fun(left.right,right.left);
}
}