剑指offer[38]——二叉树的深度

题目描述

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

这个就是采取递归的方法,单独写一个函数,参数是一个节点和该节点所在的深度,每次讲节点改为左右子树节点进行递归,直到节点为空,将此时的深度与目前的最大深度比较取最大值即可。

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function TreeDepth(pRoot)
{
    let depth = 0;
    if(!pRoot){return depth;}
    function deepIn(root, l){
        if(root){
            l++;
            deepIn(root.left, l);
            deepIn(root.right, l);
        }else{
            depth = depth>l?depth:l;
        }
    }
    deepIn(pRoot, 0);
    return depth;
}
posted @ 2020-03-27 11:37  Jacob是我了  阅读(32)  评论(0编辑  收藏