这道题的思路如下:判断左节点的值是否等于右节点的值,如果相等则比较左节点的左节点值和右节点的右节点值是否相等,同时比较左节点的右节点值和右节点的左节点的值是否相等,依次递归
public class SymmetricTree {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public boolean isSymmetric(TreeNode root) {
if(root == null){
return true;
}
return compare(root.left, root.right);
}
public boolean compare(TreeNode left,TreeNode right){
if(left == null && right == null){
return true;
}
else if (left != null && right != null){
if(left.val == right.val){
return compare(left.left,right.right) && compare(left.right,right.left);
}
else{
return false;
}
}
else{
return false;
}
}
}