java
求绝对值 Math.abs()
110.平衡二叉树 (优先掌握递归)
听完讲解还不懂的点,返回-1是为了标记该树不是平衡二叉树,那这个-1在递归的时候怎么传递呢?
class Solution {
public boolean isBalanced(TreeNode root) {
return getHeight(root)!= -1;
}
//听完讲解还不懂的点,返回-1是为了标记该树不是平衡二叉树,那这个-1在递归的时候怎么传递呢?
private int getHeight(TreeNode root) {
if(root == null) return 0;
int leftH = getHeight(root.left);
if(leftH == -1) return -1;
int rightH = getHeight(root.right);
if(rightH == -1) return -1;
int res;
if(Math.abs(leftH-rightH) >1) {
res = -1;
} else {
res = Math.max(leftH,rightH)+1;
}
return res;
}
// 最基本的求root节点的深度
// private int getHeight(TreeNode root) {
// if(root == null) return 0;
// int leftH = getHeight(root.left);
// int rightH = getHeight(root.right);
// return Math.max(leftH,rightH)+1;
// }
}
257. 二叉树的所有路径 (优先掌握递归)
需要使用前序遍历,因为是从根节点指向别的节点