二叉树的层序遍历
✨✨✨总结:广度优先搜索在二叉树中的应用,需要借助队列来实现
102. 二叉树的层序遍历
107. 二叉树的层序遍历 II(涉及到二级指针的交换问题)
637. 二叉树的层平均值(可以尝试用深度优先搜索(两个数组维护)实现)
199. 二叉树的右视图(层序遍历,只存储每层最后一个元素)
116. 填充每个节点的下一个右侧节点指针(可以充分利用数据结构中的next,直接进行模拟)
117. 填充每个节点的下一个右侧节点指针 II
429. N 叉树的层序遍历
515. 在每个树行中找最大值
104. 二叉树的最大深度(尝试用递归实现)
111. 二叉树的最小深度
深度讲解
1、102. 二叉树的层序遍历
1)问题描述
2)分析
层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而是用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。
3)代码实现
2、107. 二叉树的层序遍历 II
1)问题描述
2)分析
这里和第一题不同的地方涉及到置换顺序,因此可以先层序遍历之后,再进行置换。由于c语言没有特定的(长度不同的)二级指针的置换函数,所以这里需要非常小心。
3)代码实现