在python实现中BST节点插入失败

时间:2018-01-03 19:49:32

标签: python binary-search-tree

生成的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)   显示(根)

1 个答案:

答案 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