Skip to content

Latest commit

 

History

History
48 lines (27 loc) · 1.16 KB

二叉树的深度.md

File metadata and controls

48 lines (27 loc) · 1.16 KB
Error in user YAML: (<unknown>): mapping values are not allowed in this context at line 2 column 6
---
Time:2019/9/5
Title: 二叉树的深度
Author: 小鹿
---


面试题五十五:

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

一、思路

1、思路一:按层遍历,对按层遍历的算法进行改进,每遍历一次层进行加一。

2、思路二:寻找最长路径,借助遍历最长路径的设计思路记性改进。只需记录两个子树最深的结点为主。

二、测试用例

  • 完全二叉树、非完全二叉树 —— 普通测试
  • 只有左子节点、只有右子节点、只有一个结点二叉树 —— 特殊测试
  • 空树 —— 输入测试

三、代码编写

var maxDepth = function(root) {
    // 如果根节点为 null 
    if(root === null) return 0;
    
	// 递归左子树
    let depthLeft  = maxDepth(root.left);
    
    // 递归右子树
    let depthRight  = maxDepth(root.right);
    
	// 将子问题合并求总问题
    return Math.max(depthLeft,depthRight) + 1;
};