非递归二叉排序树插入节点代码
时间: 2024-12-12 22:12:53 浏览: 13
在非递归方式下插入节点到二叉排序树(BST)中,我们需要保持树的性质:对于每个节点,左子树的所有节点值都小于该节点,右子树的所有节点值都大于该节点。以下是使用迭代方法插入节点的伪代码示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def insert_node_iterative(root, value):
# 创建新节点
new_node = TreeNode(value)
# 如果根为空,直接设置根节点
if root is None:
return new_node
# 初始化指针,起点为根节点,指向最右侧
current = root
parent = None
while True:
parent = current
if value < current.val:
current = current.left
else:
current = current.right
# 如果找到了合适的位置或者到达叶子节点
if current is None:
break
# 插入新节点
if value < parent.val:
parent.left = new_node
else:
parent.right = new_node
return root
# 示例
root = None
insert_node_iterative(root, 5) # 根据实际需要插入其他节点
```
这个代码首先创建一个新的节点,然后通过迭代找到合适的位置插入新节点,同时保持了BST的特性。
阅读全文