diff --git a/README.md b/README.md index 617f9ca..d0af9a9 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ - [【动画模拟】栈和队列详解](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95/%E5%85%B3%E4%BA%8E%E6%A0%88%E5%92%8C%E9%98%9F%E5%88%97%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B.md) - [【绘图解析】链表详解](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95/%E5%85%B3%E4%BA%8E%E9%93%BE%E8%A1%A8%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B.md) - [【绘图描述】递归详解](https://mp.weixin.qq.com/s/A4xG9IbQUjFwQoy9YcneCw) +- 【动画模拟】树 ### 🔋字符串匹配算法 @@ -201,9 +202,9 @@ ### 🍖其他知识 - [C++程序喵大人 ](https://github.com/fightingwangzq/cpp-learning) by 帅强 -- [编程资源](https://www.code-navcn) by 编程导航 -- [Java知识地图](https://githubcom/smileArchitect/JavaMap) by 帅小雷 -- [腾讯云开发](https://githubcom/liyupi) by 鱼皮 +- [编程资源](https://www.code-nav.cn) by 编程导航 +- [Java知识地图](https://github.com/smileArchitect/JavaMap) by 帅小雷 +- [腾讯云开发](https://github.com/liyupi) by 鱼皮 ### 🍰数据库学习 diff --git a/animation-simulation/二叉树/二叉树基础.md b/animation-simulation/二叉树/二叉树基础.md index 5236a06..dde1547 100644 --- a/animation-simulation/二叉树/二叉树基础.md +++ b/animation-simulation/二叉树/二叉树基础.md @@ -1,29 +1,50 @@ +这假期咋就唰的一下就没啦,昨天还跟放假第一天似的,今天就开始上班了。 + +既然开工了,那咱们就随遇而安呗,继续努力搬砖吧。 + +下面我们将镜头切到袁记菜馆。 + +小二:掌柜的,最近大家都在忙着种树,说是要保护环境。 + +老板娘:树 ? 咱们店有呀,前几年种的那棵葡萄树,不是都结果子了吗?就数你吃的最多。 + +小儿:这.......。 + +大家应该猜到,咱们今天要唠啥了。 + 之前给大家介绍了`链表`,`栈`,`哈希表` 等数据结构 今天咱们来看一种新的数据结构,树。 -这篇文章较基础,对于没有学过数据结构的同学会有一些帮助,如果你已经学过的话,可以复习一下,查缺补漏,该部分也是面试的高频考点。 +PS:本篇文章内容较基础,对于没有学过数据结构的同学会有一些帮助,如果你已经学过的话,也可以复习一下,查缺补漏,后面会继续更新这个系列。 -> 注:因为手机看代码不太方便,所以该文对应的代码部分,放在了我的仓库,大家可以去 Github 进行阅读。 +**文章大纲** + +![image](https://cdn.jsdelivr.net/gh/tan45du/test@master/image.1ein9cz4oips.png) + + + +> 注:可能有的同学不喜欢手机阅读,所以将这篇同步在了我的仓库,大家可以去 Github 进行阅读,点击文章最下方的阅读原文即可 ## 树 -我们先来看下树的定义 +我们先来看下百度百科对树的定义 -树是 n (n >= 0) 个节点的有限集。 n = 0 时 我们称之为空树, 空树是树的特例。 +> 树是 n (n >= 0) 个节点的有限集。 n = 0 时 我们称之为空树, 空树是树的特例。 +> -在任意一棵非空树中: +在`任意一棵非空树`中: - 有且仅有一个特定的节点称为根(Root)的节点 - 当 n > 1 时,其余节点可分为 m (m > 0)个`互不相交的有限集` T1、T2、........Tm,其中每一个集合本身又是一棵树,并且称为根的子树。 -我们先来拆解一下上面的两句话,到底什么是子树呢?见下图 +我们一起来拆解一下上面的两句话,到底什么是子树呢?见下图 ![二叉树](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/二叉树.6w6xnvay3v40.png) 例如在上面的图中 -有且仅有一个特定的节点称为根节点,也就是上图中的橙色节点。 +有且仅有一个特定的节点称为根节点,也就是上图中的`橙色节点`。 当节点数目大于 1 时,除根节点以外的节点,可分为 m 个`互不相交`的有限集 T1,T2........Tm。 @@ -41,7 +62,9 @@ 我们将 (A) , (B) , (C) , (D) 代入上方定义中发现,(A) , (B) 符合树的定义,(C), (D) 不符合,这是因为 (C) , (D) 它们都有相交的子树。 -好啦,到这里我们知道如何区分树啦,下面我们通过下面两张图再来深入了解一下树。 +好啦,到这里我们知道如何辨别树啦,下面我们通过下面两张图再来深入了解一下树。 + +主要从节点类型,节点间的关系下手。 ![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/幻灯片2.4gvv5tql9cw0.PNG) @@ -51,6 +74,10 @@ ![](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/幻灯片3.17o6v5lqd9xc.PNG) +这里节点的高度和深度可能容易记混,我们代入到现实即可。 + +我们求深度时,从上往下测量,求高度时,从下往上测量,节点的高度和深度也是如此。 + ## 二叉树 我们刷题时遇到的就是二叉树啦,下面我们一起来了解一下二叉树 @@ -349,3 +376,19 @@ class Solution { - **leetcode 107. 二叉树的层序遍历 II** +- **leetcode 103. 二叉树的锯齿形层序遍历** + +上面两道题仅仅是多了翻转 + +- **leetcode 199. 二叉树的右视图** +- **leetcode 515. 在每个树行中找最大值** +- **leetcode 637. 二叉树的层平均值** + +这三道题,仅仅是加了一层的一些操作 + +- **leetcode 116 填充每个节点的下一个右侧** +- **leetcode 117 填充每个节点的下一个右侧2** + +这两个题对每一层的节点进行链接即可。 + +大家可以去顺手解决这些题目,但是也要注意一下其他解法,把题目吃透。不要为了数目而刷题,好啦,今天的节目就到这里啦,我们下期见! \ No newline at end of file