利用一个队列,实现对一颗二叉树的层序遍历 。𧱬入中序和后序的遍历顺序,输出先序遍历顺序(选做)
时间: 2024-03-14 11:44:35 浏览: 55
算法之二叉树的层序遍历(利用队列实现,需熟练手写)
5星 · 资源好评率100%
好的,我来回答你的问题。
首先,我们可以定义一个队列,用来存储二叉树的节点。我们从根节点开始,将其入队,然后进入循环,直到队列为空。在循环中,我们每次取出队首元素,输出它的值,并将其左右子节点(如果存在的话)依次入队。这样就完成了一层的遍历。我们不断重复这个过程,直到遍历完整棵树。
代码如下:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def levelOrder(root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
queue = [root]
while queue:
level = []
for _ in range(len(queue)):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level)
return res
```
至于选做的问题,先序遍历可以使用递归或者栈来实现,具体代码实现我就不在这里赘述了。
阅读全文