递归比较树。如果左右节点的值相等就比较 左节点的左节点和右节点的右节点 和 左节点的右节点和右节点的左节点。直到遇到空值,都为空返回正常,只有一个为空返回不正常。

import java.util.*;

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return bool布尔型
     */
    public boolean isSymmetric (TreeNode root) {
        // write code here
        if(null==root)
            return true;
        return isSymmetric(root.left,root.right);
    }
    public boolean isSymmetric (TreeNode left,TreeNode right) {
        // write code here
        if(left==null && right==null)
            return true;
        if(null==left || null==right)
            return false;
        if(left.val == right.val){
            return isSymmetric(left.left,right.right) && isSymmetric(left.right,right.left);
        }
        return false;
    }
}