尝试在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:
来解决插入功能中的问题了。
答案 0 :(得分:1)
尝试:
if root is None or root.val is None:
...由于root.val
可能是None
您也可以执行if None in (root, root.val):