所以我必须将一个节点插入二叉搜索树。在我的入门级课程中,二叉搜索树被表示为链接列表,如下图所示的这个二叉树的 [4, [5, [0, [],[]], [2, [], []]], [1, [],[]]]
:插入到二叉搜索树
。
(这不是一个二叉搜索树,只是一张二叉树,我有一张照片)。
所以插入一个节点到一棵树,我写了下面的递归代码:
def tree_node(key):
return [key, [],[]]
def insert(bst,key):
if bst == []:
return tree_node(key)
if key < bst[0]:
return insert(bst[1],key)
else:
return insert(bst[2],key)
return bst
这只是返回虽然节点,而不是新的树节点
例如:
>>> insert([2, [1, [], []], [3, [], []]], 6)
[6, [], []]
当它应该是:
>>> insert([2, [1, [], []], [3, [], []]], 6)
[2, [1, [], []], [3, [], [6, [], []]]]
谢谢!
你永远不会将节点插入你的树中。看看你的基本情况 - 而不是将节点插入它应该是的,你只是简单地返回节点。 –