Python 如何比较链接列表中的节点数据值?

Python 如何比较链接列表中的节点数据值?,python,linked-list,mergesort,Python,Linked List,Mergesort,我正在尝试使用mergesort对链表中的节点进行排序。在附加的代码块中,mergesort尝试比较两个节点“l1”和“l2”的数据值,但python给出了以下错误: if l1.data <= l2.data: TypeError: '<=' not supported between instances of 'NoneType' and 'int' 如果l1.data,我怀疑您希望您的if语句是如果l1.data为无:,而不是如果l1为无:。同样适用于l2。否则,您需要弄清楚

我正在尝试使用mergesort对链表中的节点进行排序。在附加的代码块中,mergesort尝试比较两个节点“l1”和“l2”的数据值,但python给出了以下错误:

if l1.data <= l2.data:
TypeError: '<=' not supported between instances of 'NoneType' and 'int'

如果l1.data,我怀疑您希望您的if语句是
如果l1.data为无:
,而不是
如果l1为无:
。同样适用于
l2
。否则,您需要弄清楚如何创建一个列表节点,其中
data
值为None。您还没有向我们展示有关在此处创建列表的任何内容。@TimRoberts谢谢。我可能会在晚些时候遇到这个问题,这可能意味着你的链接列表构建得不好。提供用于生成调用合并排序的列表的代码。
def mergeLists(l1, l2):
   if l1 is None:
       return l2
   if l2 is None:
       return l1
   if l1.data <= l2.data:
      temp = l1
      temp.next = mergeLists(l1.next, l2)
  else:
      temp = l2
      temp.next = mergeLists(l1, l2.next)
  return temp
def mergeLists(l1, l2):
    if l1 is None:
        return l2
    if l2 is None:
        return l1
    if l1.data <= l2.data:
        temp = l1
        temp.next = mergeLists(l1.next, l2)
    else:
        temp = l2
        temp.next = mergeLists(l1, l2.next)
    return temp

def mergeSort(head):
    if head is None or head.next is None:
        return head
    l1, l2 = divideLists(head)
    l1 = mergeSort(l1)
    l2 = mergeSort(l2)
    head = mergeLists(l1, l2)
    return head

def divideLists(head):
    slow = head
    fast = head
    if fast:
        fast = fast.next
    while fast:
        fast = fast.next
        if fast:
            fast = fast.next
            slow = slow.next
    mid = slow.next
    slow.next = None
    return head, mid