List 如何将列表转换为二叉搜索树

List 如何将列表转换为二叉搜索树,list,binary-search-tree,python-3.8,List,Binary Search Tree,Python 3.8,大家好,我正在尝试将列表(可以排序或不排序(我不想使用.sort()方法))转换为二进制搜索树。列表是[50,76,21,4,32100,64,52],答案应该是 编写的代码是: class BinarySearchTree: def __init__(self, value): self.value = value self.leftChild = None self.rightChild = None def insert(mylis

大家好,我正在尝试将列表(可以排序或不排序(我不想使用.sort()方法))转换为二进制搜索树。列表是[50,76,21,4,32100,64,52],答案应该是

编写的代码是:

class BinarySearchTree:
    def __init__(self, value):
        self.value = value
        self.leftChild = None
        self.rightChild = None

def insert(mylist):
    root = BinarySearchTree(mylist[0])
    curr = root
    for i in range(1, len(mylist)):
        newnode = BinarySearchTree(mylist[i])
        if(newnode.value<=root.value and root.leftChild):
            while curr.leftChild != None:
                curr = curr.leftChild
            curr.leftChild = newnode
        elif(newnode.value <= root.value):
            root.leftChild = newnode
        elif(newnode.value >= root.value and root.rightChild):
            while curr.rightChild != None:
                curr = curr.rightChild
            curr.rightChild = newnode
        else:
            root.rightChild = newnode

    return root

myroot = insert([50,76,21,4,32,100,64,52])

类二进制搜索树:
定义初始值(自身,值):
自我价值=价值
self.leftChild=None
self.rightChild=无
def插入(mylist):
root=BinarySearchTree(mylist[0])
curr=根
对于范围(1,len(mylist))中的i:
newnode=BinarySearchTree(mylist[i])

if(newnode.value)newnode.value到node.value的比较需要在树的每一层上,而不仅仅是根上。是的,这就是我所想的。我该怎么做,你能帮我编写代码吗。Python3.5