二叉树刷题记(八-二叉树的最大深度-深度遍历)

简介: 二叉树刷题记(八-二叉树的最大深度-深度遍历)

前言

上篇我们学习了层次遍历怎样使用,不会的读者可以滑到文章底部,小嘟在底部放着链接哦!

本次带着大家学习另一种遍历方式-深度遍历(其实这个也不算是个新词,我感觉之前的三种遍历方式也可以看做是深度遍历)

对于这两种遍历方式,小嘟要说的是,它首先提出来的是为了解决图的一些问题,而树和图又有点类似,所以小嘟认为,这两种算法不应该算是树的基本遍历方式,而应该算作图的,只是我们在这里可以使用这样的方式更好的解决问题。


正文

1.首先我们先认识认识什么是深度遍历?

首先深度遍历是为了解决图中的问题而被提出来的,深度优先搜索遍历的思路:我们这里举一个例子,比方说我们在玩迷宫游戏,我们刚开始肯定不知道走哪一个方向能找到出口,这个时候,我们就会按照一定的规则选择一个方向,一直往下走,直到找到出口,或者遇到了墙,遇到墙了也就意味着此方向走不通,我们需要换一个方向继续探索,这里就体现了深度优先搜索遍历的思想,即我们会沿着一个路径一直走,直到此路不通或者达到了我们的预期。


这里还体现了一个算法中经常遇到的算法——回溯,小嘟我举一个例子,在生活中,开车的时候不小心开过头了,这个时候你不得把车往回倒,然后重新走一条路到达我们的目的地。这个我们就可以看做回溯的一个简单解释。


  • 百度百科的解释

    小嘟简要说一句:客官,此路不通,请退回另走一条路呗!这就是回溯算法😂😂😂。
  • 2.理论结束,现在来看看今日的题目呗!
  • 3.代码部分
var maxDepth = function(root) {
     let max;
     const maxLength = (root01)=>{
         if(root01 == null) return 0;
         let left = maxLength(root01.left)+1;
         let right = maxLength(root01.right)+1;
         return (left>right?left:right);
     }
     max =  maxLength(root);
     return max;
}

题目介绍:题目要求二叉树的深度,也就是从根节点到某个叶子结点的路径上结点数最多。如果只有一个结点,那么根节点和叶子结点可以认为是同一个,那么二叉树的深度就是1。看上边的示例,我们计算出最大深度为3。深度为3的路径是哪一部分呢?

路径1: 3->20->15
路径2: 3->20->7


具体选择哪一个路径,是由我们编写代码来决定的

代码解释:要计算一个二叉树的深度,我们肯定要先遍历,然后呢,我们要对比,那我们要对比的对象是什么呢?分析题目我们可以很容易的知道,我们要对比的是某结点的左子树和右子树的深度,然后每次函数结束的时候,我们就将较大的深度返回,这样一层一层的返回我们最后就计算出了整个二叉树的最大深度。思路比较简单,小嘟就不比多说了,说多了就有点啰嗦了,嘿嘿嘿!

结尾

今天小嘟写的有点简单了,好多东西都没有深入讲解,在这里给读者说声抱歉!

小嘟的想法是先将文章写出来,不管怎样,自己还是坚持在做题,也希望读者能够坚持下去👍👍👍。

内容简单点,但是小嘟觉得自己将重要的内容讲出来了,对小白或者基础不好的初学者来说,这个就足够了,写的多了还可能会适得其反。

我这几天再看看这方面的知识,等小嘟掌握的差不多了,再回来修改文章的一些细节。

小嘟不会为了文章的数量而忽视质量,请读者放心,若你们发现小嘟开始水文,请及时制止。

话不多说,干就完了,读者也要坚持哦!👍👍👍

我是小嘟,一个爱学习的渣渣溜啦溜啦...

相关文章
|
7月前
|
存储
喔嚯霍,二叉树的遍历,先序,中序,后序原来这么简单(附代码)!!!
喔嚯霍,二叉树的遍历,先序,中序,后序原来这么简单(附代码)!!!
|
7月前
leetcode代码记录(二叉树的最大深度
leetcode代码记录(二叉树的最大深度
40 0
|
7月前
二叉树刷题记(七-二叉树的右侧视图)
二叉树刷题记(七-二叉树的右侧视图)
|
7月前
二叉树刷题记(九-二叉搜索树中的中序后继-中序遍历)
二叉树刷题记(九-二叉搜索树中的中序后继-中序遍历)
|
7月前
二叉树刷题记(四-前序遍历)
二叉树刷题记(四-前序遍历)
|
7月前
|
算法
二叉树刷题记(三-后序遍历)
二叉树刷题记(三-后序遍历)
|
7月前
二叉树刷题记(二-中序遍历)
二叉树刷题记(二-中序遍历)
|
7月前
|
算法
二叉树刷题记(六-二叉搜索树的第k大节点)
二叉树刷题记(六-二叉搜索树的第k大节点)
|
7月前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
Leetcode1038. 从二叉搜索树到更大和树(每日一题)
Leetcode1038. 从二叉搜索树到更大和树(每日一题)