难度:简单
思路:对称二叉树,即左节点和右节点对称,那么某层的节点,我们以第三层为例,存在左节点L、右侧节点R,L的子节点为L1和L2,R的子节点为R1和R2,只要L1和R2一致,L2和R1一致即可。
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root==null){
return true;
}
return isSymmetric(root.left,root.right);
}
public boolean isSymmetric(TreeNode p,TreeNode q) {
if(p==null && q==null){
return true;
}
if(p==null || q==null){
return false;
}
if(p.val == q.val){
//p的left和q.right对比 && p的right和q的left对比
return isSymmetric(p.left,q.right) && isSymmetric(p.right,q.left);
}
return false;
}
}