题目描述
请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
对称二叉树的满足条件为:
1、L.val=R.val
2、L.left.val=R.right.val
3、L.right.val=R.left.val
就是不要将思路局限在一个节点上,而是同时考虑两个节点
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
return test(pRoot,pRoot);//两个pRoot就很巧妙了
}
boolean test(TreeNode n1,TreeNode n2)
{
if(n1==null&&n2==null)
return true;
else if(n1==null||n2==null)
return false;
else
{
if(n1.val==n2.val)
return test(n1.left,n2.right)&&test(n1.right,n2.left);
else
return false;
}
}
}