树插入功能无法识别非类型的节点

时间:2018-12-27 20:33:57

标签: python binary-search-tree

尝试在python中编写具有不同功能的二进制搜索树。功能之一是一个简单的“插入”节点。

class Node(object):
    def __init__(self, val=None):
        self.val = val
        self.left = None
        self.right = None
    def insert(self, root, val):
        if root is None:
            return Node(val)
        if val < root.val:
            root.left = self.insert(root.left, val)
        elif root.val < val:
            root.right = self.insert(root.right, val)
        return root

似乎很简单,但是当我创建Node对象时:

root= Node()

并尝试将其插入:

root = root.insert(root,30)

我收到一条错误消息,说“ int”和“ NoneType”的实例之间不支持“ <”

我已经在尝试通过检查if root is None:来解决插入功能中的问题了。

1 个答案:

答案 0 :(得分:1)

尝试:

if root is None or root.val is None:

...由于root.val可能是None

您也可以执行if None in (root, root.val):