利用队列,编程实现二叉树的层次遍历。 输入格式: 一个字符序列,表示空子树处为*号的二叉树的先序遍历序列。 输出格式: 一个字符序列,表示二叉树的层次遍历序列。
时间: 2024-03-22 09:41:52 浏览: 66
好的,以下是 Python 代码实现:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def buildTree(preorder):
if not preorder:
return None
val = preorder.pop(0)
if val == "*":
return None
root = TreeNode(int(val))
root.left = buildTree(preorder)
root.right = buildTree(preorder)
return root
def levelOrder(root):
if not root:
return []
res = []
queue = [root]
while queue:
level = []
for i 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
preorder = input().strip().split()
root = buildTree(preorder)
res = levelOrder(root)
for level in res:
print(" ".join(str(val) for val in level))
```
输入示例:
```
1 2 * * 3 4 * * 5 * *
```
输出示例:
```
1
2 3
4 5
```
阅读全文