如何在二叉搜索树中添加节点

时间:2014-11-21 01:17:54

标签: python recursion tree

我有这个2函数 - 第一个是创建一个节点,第二个是一个递归函数,它通过树来查找值的位置:

def create_node(number=None):
    return {"Number": number, "Right": None, "Left":None}

def insert(number, pointer):
    pointer_number=pointer["number"]

    if pointer_number is none:
        pointer["number"]=number

    elif number > pointer_number:
        if pointer["right"] is none:
            pointer["right"] = create_node(number)
        else:
            insert(number, pointer["right"])
    else:
        if pointer["left"] is none:
            pointer["left"] = create_node(number)
        else:
            insert (number, pointer["left"]) 

现在我已经创建了树的根目录:

root = create_node(5)

我面临的问题是当我尝试使用insert函数向树添加值时。我错过了什么,我不知道该怎么做。请指教..

1 个答案:

答案 0 :(得分:0)

所以有两件事

  • NoneType大写:None(如果您在create_node中执行此操作)
  • Python字符串比较区分大小写,因此当您检查pointer["number"]值时,您实际上并没有检查您在create_node方法中设置的值,它的关键是"Number"(大写“ N“),是它抛出KeyError的原因。 "right""left"相同。