前言:
此刻大家对“二叉树深度计算公式”可能比较注重,同学们都想要分析一些“二叉树深度计算公式”的相关文章。那么小编同时在网络上搜集了一些有关“二叉树深度计算公式””的相关知识,希望你们能喜欢,你们快快来了解一下吧!给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
返回它的最大深度 3 。
我们能想到的最简单的方式估计就是递归了,也就是下面这个图
如果对递归不熟悉的话可以看下我前面讲的关于复仇一个故事362,汉诺塔。下面我们来画个图来分析下
看明白了上面的过程,代码就容易多了,我们看下
除了递归,我们还可能想到的就是BFS(宽度优先搜索算法(又称广度优先搜索)),他的实现原理就是一层层遍历,统计一下总共有多少层,我们来画个图分析一下。
一层一层往下走,统计总共有多少层,我们来看下代码
想到BFS我们一般会和DFS联想到一起,DFS是深度优先搜索算法,我们先来看下代码
这里使用了两个栈,一个是存储节点的,一个是存储每个节点到根节点总共经过多少个节点(包含根节点和当前节点)。
如果喜欢这篇文章还可以关注微信公众号“数据结构和算法”,查看更多的算法题
标签: #二叉树深度计算公式 #二叉树求深度代码分析