中序遍历创建二叉树
时间: 2023-09-04 08:11:31 浏览: 137
好的,中序遍历创建二叉树的步骤如下:
1. 如果给定的中序遍历序列为空,则返回 NULL。
2. 从中序遍历序列中找到根节点元素。
3. 创建一个新节点,将根节点元素赋值给新节点。
4. 根据根节点在中序遍历序列中的位置,将中序遍历序列分为左子树序列和右子树序列。
5. 递归调用步骤 2-4,创建左子树和右子树,并将左子树和右子树分别连接到根节点的左子树和右子树上。
6. 返回根节点。
代码实现如下(假设中序遍历序列为 inorder,左子树起始位置为 inStart,右子树结束位置为 inEnd):
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def buildTree(inorder, inStart, inEnd):
if inStart > inEnd:
return None
# 找到根节点
rootVal = inorder[(inStart + inEnd) // 2]
root = TreeNode(rootVal)
# 分割左子树和右子树
index = inorder.index(rootVal)
root.left = buildTree(inorder, inStart, index - 1)
root.right = buildTree(inorder, index + 1, inEnd)
return root
```
希望能够帮到你!
阅读全文