题目描述

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

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

3

/ \
9 20

/  \

15 7
返回它的最大深度 3 。

解题思路

1、递归
终止条件: 叶子节点
递归执行:返回最大值(当前最大值、左右节点返回的最大值)+1
2、迭代
终止调价: 叶子节点
借用数组,按深度优先的原则,先扫描一层的节点,然后分别弹出,无叶子节点,则将子节点入队;有叶子节点则返回

语言积累和技巧

queue的poll、offer等方法
使用迭代时,判断条件为,叶子节点返回统计数,非叶子节点,则将非空子节点压入队列中

vscode 代码链接

https://github.com/lunaDolphi...
https://github.com/lunaDolphi...
https://github.com/lunaDolphi...


blueDolphin
12 声望1 粉丝