思路:
递归: 只有根节点的值是比较两个儿子节点的值,其他结点都是左节点的左孩子和右节点的右孩子,右节点的左孩子和左节点的右孩子比较,因此这里搞了两级比较;
代码:
代码语言:javascript复制class Solution {
public boolean isSymmetric(TreeNode root) {
if (root==null){
return true;
}
return dfs(root.left,root.right);
}
private boolean dfs(TreeNode left, TreeNode right) {
//如果全null
if (left==null&&right==null){
return true;
}
//如果只有一个为null
if (left==null||right==null){
return false;
}
//如果均不为null
if (left.val!=right.val){
return false;
}
return dfs(left.left,right.right)&&dfs(left.right,right.left);
}
}