class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null) return true;
return equal(root.left,root.right);
}
private boolean equal(TreeNode A,TreeNode B){
if(A == null && B == null) return true;
if(A == null || B == null) return false;
if(A.val != B.val) return false;
return equal(A.left,B.right) && equal(A.right,B.left);
}
}
因为题目只给了一个方法,方法只能传一个节点,所以一定不能作比较。所以需要另外一个方法。
该题根节点不会影响对称,所以从第二层传入进行比较。
当第二层都为空,则一定对称。当只有其中一个节点不为空则一定不对称。当两个都不为空时进行比较值是否相等。
最后一步就是当两个父节点相等时,判断他们的两个最外子节点是否相等,最内子节点是否相等。