注:对称是往两边dfs的
java:
class Solution {
public boolean isSymmetric(TreeNode root) {
if (root == null)
return true;
return isSymmetricCore(root.left, root.right);
}
public boolean isSymmetricCore(TreeNode left, TreeNode right) {
if (left == null && right == null)//注!先判断都为null返回true,下边才好判断
return true;
if (left == null || right == null)
return false;//注!!有一个不为null另一个为null返回false
if (left.val != right.val)
return false;
return isSymmetricCore(left.left, right.right) && isSymmetricCore(left.right, right.left);//短路特征,前一个false后一个就不执行了
}
}