定义
从底向上:比如:动态规划
从顶向下:
区分
在leetcode110这道题中,我们可能会有疑问,从底向上和从顶向下有什么区别?
从参数传递的角度看,似乎函数都是从root开始调用的,一直到最底部获得高度,再往上传递。
然而要区别二者,应该从发生实际运算的顺序。
从顶向下
算法判断是否平衡,这个判断的过程是从顶向下的
先判断当前节点是否平衡,然后判断左子树、右子树
class Solution {
public:
bool isBalanced(TreeNode* root) {
if (root == NULL) return true;
return abs(getHigh(root->left) - getHigh(root->right)) < 2 //先判断当前节点
&& isBalanced(ro