理论基础
需要了解 二叉树的种类,存储方式,遍历方式
以及二叉树的定义
文章讲解: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
前序遍历
统一迭代 (基础不好的录友,迭代法可以放过)
这是统一迭代法的写法, 如果学有余力,可以掌握一下
很聪明的想法,就是让你当下遍历的节点,先不进入result数组,而是把它拆成左节点、右节点和节点本身(后面要加一个NULL),这三个需要按照你需要的遍历顺序来依次放入。然后后面只要遍历要NULL,就把NULL后面的那个节点放入result数组即可,这样的话,变化的就只有那三个节点的push顺序了,其他的都用不变了。