一:从上到下打印二叉树:
二:二叉树的层序遍历(自底向上):
三: 填充每个节点的下一个右侧节点指针
四:N叉树的层序遍历:
五:二叉树的右视图:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yYiZ2N4UTMwEmZjZzY4IDM5UmZ1MjZmhjNwcDZzMWNy8CXwMzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
解析: BFS的特点:
1:首先BFS必须与队列配合使用。
2:首先初始化队列: 构建一个队列, 然后将根节点加入到队列中。
3:外层循环控制队列中是否还有元素,有则继续执行。
4:内层循环可以根据当前队列的长度,判断这一层有多少节点,然后循环遍历,将节点的值加入数组,然后如果当前根节点还有左子树节点则加入到队列中,有右子树也加入到队列中来。
分析: 层序遍历,中间让每个节点指向下一个节点。
原理还是层序遍历,只不过加入的时候,采用循环加入节点。
层序遍历,如果是最后一层,则加入列表。