链表排序错误

Linked List sorting error

这段代码应该对包含 6 个元素的列表进行排序,忽略第一个元素。出于某种原因,我总是收到一条错误消息 "TypeError: 'NoneType' object is not subscriptable"。如果有人能为我提供解决方案或向我解释修复方法,我将不胜感激。

def bubbleSortLinkedList(aLinkedList):
    pointer = aLinkedList
    swapped = True
    while swapped:
        pointer = aLinkedList['next']
        swapped = False
        for i in range(4):
            if pointer['data'] > pointer['next']['data']:
                pointer['data'], pointer['next']['data'] = pointer['next']['data'], pointer['data']
                swapped = True
            pointer = pointer['next']
        aLinkedList = pointer 
    return aLinkedList

在 while 循环的最后一行,您写了 aLinkedList = pointer,它指向列表的最后一个元素。但是,您打算做的是将指针设置为列表的第一个元素。

这是更正后的代码:

def bubbleSortLinkedList(aLinkedList):
    pointer = aLinkedList
    swapped = True
    while swapped:
       pointer = aLinkedList['next']
       swapped = False
       for i in range(4):
           if pointer['data'] > pointer['next']['data']:
               pointer['data'], pointer['next']['data'] = pointer['next']['data'], pointer['data']
               swapped = True
            pointer = pointer['next']

        pointer = aLinkedList # This line was wrong!!!!! 

    return aLinkedList