先序遍历的顺序建立二叉链表
时间: 2024-04-14 21:05:34 浏览: 110
先序遍历建立二叉链表的具体步骤如下:
1. 创建一个空的二叉树,根节点为 null。
2. 读入一个节点的值,如果该值为结束符号,则返回 null,表示二叉树建立完成;否则将该值作为当前节点的值,并创建一个新的节点。
3. 将当前节点作为根节点,并递归处理左子树和右子树:
- 读入下一个节点的值,作为左子树的根节点,递归处理左子树;
- 读入下一个节点的值,作为右子树的根节点,递归处理右子树。
4. 将左子树和右子树连接到当前节点上,并返回当前节点。
代码实现如下:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def buildTree(preorder):
if not preorder: # 如果序列为空,则返回 None
return None
val = preorder.pop(0) # 取出第一个节点的值
if val == '#': # 如果是结束符号,则返回 None
return None
root = TreeNode(val) # 创建一个新的节点
root.left = buildTree(preorder) # 递归处理左子树
root.right = buildTree(preorder) # 递归处理右子树
return root # 返回当前节点
```
其中,preorder 表示先序遍历得到的节点值序列,'#' 表示结束符号。
阅读全文