二叉树(2)- 广度优先遍历

二叉树的层序遍历

✨✨✨总结:广度优先搜索在二叉树中的应用,需要借助队列来实现

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)代码实现

效果
置换函数

你可能感兴趣的:(二叉树(2)- 广度优先遍历)