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

别说谁变了你拦得住时间么 提交于 2020-03-27 12:13:10

题目描述

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

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

/* 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;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!