13. 已知二叉排序树的指针,数组,构建二叉排序树
时间: 2023-12-12 07:35:09 浏览: 88
给定二叉排序树的指针数组,可以通过以下步骤构建二叉排序树:
1. 初始化一个空的二叉排序树。
2. 遍历指针数组,对于每个指针:
a. 如果指针为空,跳过该元素。
b. 找到当前节点在二叉排序树中的位置,插入该节点。
3. 完成遍历后,得到的二叉排序树即为所求。
以下是一个简单的Python实现:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def insert(root, val):
if not root:
return TreeNode(val)
if val < root.val:
root.left = insert(root.left, val)
else:
root.right = insert(root.right, val)
return root
def construct_bst(pointers, start, end):
if start > end:
return None
mid = (start + end) // 2
node = TreeNode(pointers[mid])
node.left = construct_bst(pointers, start, mid - 1)
node.right = construct_bst(pointers, mid + 1, end)
return node
# 示例
pointers = [4, 2, 7, 1, 3, 6, 9]
root = construct_bst(pointers, 0, len(pointers) - 1)
```
阅读全文