生成的BST在插入新值时不会更新。对于空的子节点,此代码查找适当的位置但无法更新插入的值。请有任何见解。感谢。
class Node:
def __init__(self, val):
self.val = val
self.left = self.right = None
def insertbst(root, val):
if root == None:
root = Node(val)
return
if val <= root.val:
insertbst(root.left, val)
elif val > root.val:
insertbst(root.right, val)
def display(root):
if root == None: return
display(root.left)
print root.val
display(root.right)
if __name__ == "__main__":
root = Node(100)
insertbst(root, 20)
insertbst(root, 500)
insertbst(root, 10)
insertbst(root, 30)
insertbst(root,40) 显示(根)
答案 0 :(得分:0)
您根本没有连接节点。请参阅下面的代码。创建节点时,它未连接到任何其他节点。
def insertbst(root, val):
if root == None:
root = Node(val)
return
您可以通过
连接两个节点node_A.left = node_B
# generates
node_A
/
node_B
node_A.right = node_B
# generates
node_A
\
node_B