LeetCode每日一题,104. Maximum Depth Of Binary Tree
先看题目描述
大意就是给定一个二叉树,求它的深度
算法和思路
递归法
递归法是数据结构课上就讲过的,我们可以求出左子树和右子树的深度 l 和 r,那么二叉树的深度就为 max(l, r) + 1,求子数深度用递归即可
广度优先搜索
广度优先搜索的队列里存放的是当前层的所有节点,每次拓展下一层的时候,不同于广度优先搜索的每次只从队列里拿出一个节点,我们需要将队列里该层的所有节点都拿出来进行拓展,这样能保证每次拓展完的时候队列里存放的是下一层的所有节点,即我们是一层一层地进行拓展,最后我们用一个变量 ans 来维护拓展的次数,最终拓展结束时该二叉树的最大深度即为 ans
算法源码
递归法
1 | /** |
广度优先搜索
1 | import java.util.*; |