1.本题知识点
二叉树,递归
2. 题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
3. 思路
如图,对称条件:
① 根节点及其左右子节点相同。
②左子节点的左子节点等于右子节点的右子节点。
③左子节点的右子节点等于右子节点的左子节点。
Java版本:
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot == null) return true;
return compareRoot(pRoot.left, pRoot.right);
}
private boolean compareRoot(TreeNode left, TreeNode right) {
if(left == null && right ==null) return true;
if(left == null || right == null) return false;
return left.val == right.val && compareRoot(left.left,right.right);
}
}