题目描述:

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

例如:

给定二叉树 [3,9,20,null,null,15,7],

  1. 3<br /> / \<br /> 9 20<br /> / \<br /> 15 7<br />返回它的最大深度 3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof

知识点:

  • 深度优先遍历

解题思路:

  • 我们通过传入变量的方式来记录二叉树的深度,在每次递归的时候让深度加一,当当前节点无左节点与右节点时说明二叉树走到了尽头,判断当前深度是否为最深的

解题代码:

function TreeDepth(pRoot)
{
    // write code here
    if(!pRoot) return 0;
    let max = 0;
    const dfs = (node,deep) => {
        if(!node.left && !node.right) {
            max = Math.max(max,deep);
        }
        if(node.left) dfs(node.left,deep+1);
        if(node.right) dfs(node.right,deep+1);
    }
    // 注意这道题不像打印二叉树的题,统计深度我们需要从1层开始
    // 可以发现不存在是第0层
    dfs(pRoot,1);
    return max;
}