按先序序列构造一棵二叉链表表示的二叉树T代码
时间: 2024-12-15 21:19:20 浏览: 2
在计算机科学中,将先序遍历序列用于构建二叉树通常涉及到递归的过程。这里是一个简单的Python代码示例,它演示了如何从先序遍历(根节点、左子树、右子树)构建二叉树:
```python
class Node:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_binary_tree(preorder):
if not preorder: # 如果序列为空,则返回None
return None
root_val = preorder[0] # 根据先序遍历,第一个元素作为根节点
root = Node(root_val) # 创建新的根节点
# 递归地创建左右子树
index = 1 # 跟踪当前索引,跳过已处理的根节点
root.left = build_binary_tree(preorder[index:]) if index < len(preorder) else None
root.right = build_binary_tree(preorder[index+1:]) if index + 1 < len(preorder) else None
return root
# 示例:给定先序遍历 [1, 2, 4, 5, 3]
preorder = [1, 2, 4, 5, 3]
root = build_binary_tree(preorder)
```
这个函数首先查找先序遍历的第一个元素,然后创建一个新的节点并设置其值。接着,它递归地在剩余的序列中寻找对应节点的位置,并构建对应的左子树和右子树。
阅读全文