二叉树
文章平均质量分 54
二叉树刷题记录
青山的青衫
这个作者很懒,什么都没留下…
展开
-
LeetCode226.翻转二叉树
LeetCode226.翻转二叉树1.问题2.思路整体思路是翻转每一个结点的左右孩子,所以需要遍历二叉树。则重点是以何种方式遍历二叉树!前序、后序、层序都可以,中序不行,因为会把有的结点交换两次!下以前序为例:3.代码实现...原创 2022-02-14 13:08:37 · 402 阅读 · 0 评论 -
LeetCode102.二叉树的层序遍历(按层输出和统一输出)
LeetCode102.二叉树的层序遍历文章目录LeetCode102.二叉树的层序遍历1.问题2.思路(1)什么是层次遍历(2)借助队列执行3.代码实现a.按层输出版b.统一输出版1.问题2.思路(1)什么是层次遍历按照层数由小到大,同层由左向右的次序访问结点实现:(需借助队列!)在第i层上若结点x在结点y的左边,则x一定在y之前被访问。并且,在第i+1层上,x的子节点一定在y的子节点之前被访问。(2)借助队列执行运行实例:3.代码实现按层输出,就是上图中按[[A]原创 2022-02-13 20:07:40 · 3867 阅读 · 1 评论 -
LeetCode145. 二叉树的后序遍历(递归和迭代的三种方法)
LeetCode145. 二叉树的后序遍历文章目录LeetCode145. 二叉树的后序遍历1.问题2.思路(1)什么是后序遍历(2)递归(3)迭代思路a.改造先序遍历b.仿造中根遍历策略1策略2:3.代码实现(1)递归(2)迭代a.改造先序遍历b.策略1b.策略21.问题2.思路(1)什么是后序遍历(2)递归和前序中序思路一样,只是将根结点放到最后访问(3)迭代思路a.改造先序遍历b.仿造中根遍历中根遍历:1.从根节点自上而下沿着左侧分支下行,并把沿途结点压栈,直到最深的结点(原创 2022-02-13 19:36:09 · 424 阅读 · 0 评论 -
LeetCode94. 二叉树的中序遍历
LeetCode94. 二叉树的中序遍历文章目录LeetCode94. 二叉树的中序遍历1.问题2.思路(1)什么是中根遍历(2)递归(3)迭代3.代码实现(1)递归(2)迭代1.问题2.思路(1)什么是中根遍历(2)递归和前序后序差不多的思路!(3)迭代需要借助一个栈!一段ADL伪代码!过程模拟3.代码实现(1)递归 class Solution {public: void inOrder(TreeNode*cur,vector<int>&原创 2022-02-11 22:50:32 · 188 阅读 · 2 评论 -
LeetCode144. 二叉树的前序遍历
二叉树的前序遍历文章目录二叉树的前序遍历1.问题2.思路3.代码实现(1)递归(2)迭代(利用栈)1.问题2.思路1.首先介绍下先根遍历—按照根-左儿子-右儿子的顺序遍历整棵二叉树2.递归方法3.迭代方法栈不为空时,每次出栈一个结点,放入返回数组中!某个结点出栈之后其右左孩子入栈(有顺序!)3.代码实现(1)递归class Solution {public: void PreOrder(TreeNode*cur,vector<int>& vec)原创 2022-02-11 20:59:20 · 396 阅读 · 1 评论 -
二叉树基础知识
二叉树基础知识文章目录二叉树基础知识1.二叉树的种类(1)满二叉树(2)完全二叉树(3)二叉搜索树(4)平衡二叉搜索树2.二叉树的存储方式链式存储:顺序存储:3.二叉树的遍历方式4.二叉树的定义(代码)1.二叉树的种类题目中主要有两种:满二叉树和完全二叉树。(1)满二叉树(2)完全二叉树(3)二叉搜索树(4)平衡二叉搜索树2.二叉树的存储方式链式存储:顺序存储:3.二叉树的遍历方式4.二叉树的定义(代码)struct TreeNode{ int val; Tr原创 2022-02-07 16:19:23 · 349 阅读 · 0 评论