题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
// 用递归方法实现
if(pRoot == null){
return true;
}
return isSymmetrical(pRoot.left,pRoot.right);
}
private boolean isSymmetrical(TreeNode left, TreeNode right){
if(left == null && right == null ){
return true;
}
// 一边有,一边没有,肯定不对称;数值不相等,也不对称
if(left == null || right == null || left.val != right.val ){
return false;
}
return isSymmetrical(left.left,right.right) && isSymmetrical(left.right,right.left);
}
}
对称二叉树,其实就是自己成镜像。
递归,出口,root为null,return true;一边null,一边不是null,return false;两边值不等,return false;然后就是进入递归。对称二叉树,是左左与右右相等,左右与右左相等,这点不要搞错了,所以进入递归比较的应该是他们,不要比较成了其他的。
三奇智元机器人科技有限公司公司福利 70人发布