代码随想录算法训练营第十四天|理论基础 递归遍历 迭代遍历 统一迭代

理论基础

需要了解 二叉树的种类,存储方式,遍历方式

以及二叉树的定义

文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 

递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单

题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html

1、确定递归函数的参数和返回值

2.确定终止条件

3、确定单层递归的逻辑

144二叉树的前序遍历

145二叉树的后序遍历

94二叉树的中序遍历

迭代遍历 (基础不好的录友,迭代法可以放过)

题目链接/文章讲解/视频讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html

前序遍历

统一迭代 (基础不好的录友,迭代法可以放过)

这是统一迭代法的写法, 如果学有余力,可以掌握一下

题目链接/文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E7%BB%9F%E4%B8%80%E8%BF%AD%E4%BB%A3%E6%B3%95.html

很聪明的想法,就是让你当下遍历的节点,先不进入result数组,而是把它拆成左节点、右节点和节点本身(后面要加一个NULL),这三个需要按照你需要的遍历顺序来依次放入。然后后面只要遍历要NULL,就把NULL后面的那个节点放入result数组即可,这样的话,变化的就只有那三个节点的push顺序了,其他的都用不变了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。