【发布时间】:2019-06-17 01:23:47
【问题描述】:
我正在尝试实现一个 BST,它在对 insert() 的调用执行后将 root 值再次设置为 None,此时它应该更改为第一次调用后插入的第一个值,并且之后创建一棵树。关于为什么会发生这种情况的任何建议?
class Node:
def __init__(self, value=None, left=None, right=None):
self.value = value
self.left = left
self.right = right
def __str__(self):
return str(self.value)
def insert(root,value):
if root is None:
root = Node(value)
print(1)
elif value <= root.value:
root.left = insert(root.left, value)
print(2)
else:
root.right = insert(root.right, value)
print(3)
def search(root,value):
if root is None:
print("False")
elif root.value == value:
print("True")
elif value <= root.value:
return search(root.left, value)
else:
return search(root.right, value)
root = None
insert(root,15)
insert(root,10)
insert(root,25)
search(root,10)
输出:
1
1
1
False
【问题讨论】:
标签: python-3.x data-structures binary-search-tree