- 如果从根节点开始的左右节点是对称的,只要递归左左和右右,左右和右左即可。
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot==null)
{
return true;
}
if(pRoot.left==null&&pRoot.right!=null)
{
return false;
}
if(pRoot.right==null&&pRoot.left!=null)
{
return false;
}
if(pRoot.right==null&&pRoot.left==null)
{
return true;
}
if(pRoot.left.val==pRoot.right.val)
{
return deps(pRoot.left,pRoot.right);
}
else{
return false;
}
}
public boolean deps(TreeNode left,TreeNode right)
{
if(left!=null&&right==null)
{
return false;
}
if(right!=null&&left==null)
{
return false;
}
if(right==null&&left==null)
{
return true;
}
if(left.val!=right.val)
{
return false;
}
else{
return deps(left.left,right.right)&&deps(left.right, right.left);
}
}