【题目描述】请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
【解题思路】 //1. 如果一颗二叉树是对称的,需要满足以下几个条件。 //2. 当前节点的值相等,节点的左子树对称,节点的右子树对称。 //3. 注意这里的对称,是说镜像相同。而镜像与原来的是反的。即左子树的左子树与右子树的右子树相同。
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot==
null){
return
true;
}
return Symmetric(pRoot.
left,pRoot.
right);
}
public boolean Symmetric(TreeNode
left,TreeNode
right){
if(
left==
null&&
right==
null)return
true;
if(
left==
null||
right==
null)return
false;
return
left.val==
right.val&&Symmetric(
left.
left,
right.
right)&&Symmetric(
left.
right,
right.
left);
}
}