分析
- 若根节点为空,返回TRUE;
- 不为空,递归判断左右两颗子树是否对称,即左子树的左孩子==右子树的右孩子 && 左子树的右孩子==右子树的左孩子。
- 递归判断函数中,注意递归出口。
代码
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot == null) return true;
return isSym(pRoot.left, pRoot.right);
}
boolean isSym(TreeNode root1, TreeNode root2){
if(root1 == null && root2 == null){
return true;
}else if(root1 == null || root2 == null){
return false;
}else if(root1.val == root2.val){
return isSym(root1.left, root2.right) && isSym(root1.right, root2.left);
}else{
return false;
}
}
}