为什么我的反向链表只有return个头?

Why does my reverse linked list only return head?

我在做reverse a linked list leetcode问题:Reverse a single linked list。 但是我的代码只有 returns 头部,尽管我认为头部通过以下方式与其下一个节点链接:

pre = curr.next  

下面是我的代码。我很难弄清楚问题出在哪里。感谢您的帮助!!

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if head == None:
            return head

        pre, curr, post = None, head, head.next
        while post:
            pre = curr.next
            pre, curr, post = curr, post, post.next

        pre = curr.next

        return curr

在链表中,节点使用 next 变量连接(在 leetcode 中给出)。你所做的只是简单的向前推进,并没有扭转他们之间的关系。

你应该做的是

class Solution(object):
def reverseList(self, head):
    """
    :type head: ListNode
    :rtype: ListNode
    """
    if head == None:
        return head

    pre, curr, post = None, head, head.next
    while post:
        curr.next=pre
        pre, curr, post = curr, post, post.next
    curr.next=pre

    return curr

我希望你能看到你错在哪里。代码的手迹总是有助于理解逻辑。