写一段构造二叉树的代码
时间: 2023-05-22 21:03:02 浏览: 46
这是一个构造二叉树的 Python 代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(preorder, inorder):
if not inorder:
return None
# preorder 中的第一个值是根节点
root_val = preorder.pop(0)
root = TreeNode(root_val)
# 在 inorder 中找到根节点的位置
idx = inorder.index(root_val)
# 递归的构建左右子树
root.left = buildTree(preorder, inorder[:idx])
root.right = buildTree(preorder, inorder[idx+1:])
return root
# 示例输入
preorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
# 构造二叉树
root = buildTree(preorder, inorder)
```
该代码通过先序遍历和中序遍历序列构造一颗二叉树,并返回二叉树的根节点。其中,`inorder` 是二叉树的中序遍历序列,`preorder` 是二叉树的先序遍历序列。该代码运行结果为:
```
3
/ \
9 20
/ \
15 7
```