Skip to content

二叉树

在二叉树递归时,一开始不要在意细节,而是考虑整颗树与左右子树的区别,例如二叉树的最大深度这一问题中:

原问题:计算整颗树的最大深度

子问题:计算左/右子树的最大深度

子问题与原问题是相似的

相比于循环,只不过递归是将计算结果返回到上一级问题,依次"递"下去,所以需要有个边界条件停止这一过程,那么就会有一个"归"的过程,一步一步返回给上一级,最终得到正确答案。

js
var calculateDepth = function(root) {
    if(!root){
        return 0
    }
    let left=calculateDepth(root.left) 
    let right=calculateDepth(root.right)
    return Math.max(left,right)+1
};

Released under the MIT License.