我自己的方法返回None而不是有效值

时间:2018-11-18 11:07:42

标签: python-3.x random binary-tree probability

当我检查函数“链接器”的工作方式时,我自己的类方法不起作用。这些方法返回None值。

当我在交互模式下运行这些方法时,它们会起作用,并且每个方法都会返回一个链接到根的新节点。为什么在运行“链接程序”功能时这些方法不起作用?

节点定义为

class node:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None


    def insertL(self, data):
        self.left = node(data)
        return self.left

    def insertR(self, data):
        self.right = node(data)
        return self.right




def linker(root, lst):
    import random

    seq = ['left', 'right', 'nither', 'either']
    res = random.choices(seq,(0.1,0.3,0.1,0.6), k=1)
    if lst:
        l=random.choice(lst)

        if res == 'left':
            root=root.insertL(l)
            lst.remove(l)
            return root, lst
        elif res == 'right':
            root=root.insertR(l)
            lst.remove(l)
            return root,lst
        elif res == 'nither':
            return root,lst
        elif res == 'either':
            nodes = [root.insertL(l)]
            lst.remove(l)
            l2=random.choice(lst)
            nodes+=[root.insertR(l2)]
            lst.remove(l2)
            return nodes, lst
    else: 
        return root, lst

0 个答案:

没有答案