遍历序列构造二叉树bintree
时间: 2024-01-11 19:04:10 浏览: 72
bin_tree.rar_二叉树的遍历
构造二叉树的基本思路是:从序列中取出根节点,然后将序列分为左子树和右子树两部分,递归地构造左右子树。对于遍历序列来说,根节点就是第一个元素,然后根据中序遍历序列将其分为左右子树,再根据前序遍历或后序遍历序列确定左右子树的根节点。
下面是一个示例代码,假设给定的是前序遍历和中序遍历序列:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def buildTree(preorder, inorder):
if not inorder:
return None
root = TreeNode(preorder.pop(0))
index = inorder.index(root.val)
root.left = buildTree(preorder, inorder[:index])
root.right = buildTree(preorder, inorder[index + 1:])
return root
preorder = [1, 2, 4, 5, 3, 6, 7]
inorder = [4, 2, 5, 1, 6, 3, 7]
root = buildTree(preorder, inorder)
```
这个代码中,`buildTree` 函数接收前序遍历序列和中序遍历序列作为参数,返回构造好的二叉树的根节点。首先从前序遍历序列中取出根节点,然后在中序遍历序列中找到根节点的位置,将中序遍历序列分为左子树和右子树两部分,递归地构造左右子树,最后返回根节点。
阅读全文