为什么我的反向链表只返回头?

时间:2018-04-04 18:38:02

标签: python list linked-list reverse

我正在反向链接列表leetcode问题:反转单链表。 但是我的代码只返回头部,虽然我认为头部与下一个节点链接:

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

1 个答案:

答案 0 :(得分:1)

在链表中,节点使用下一个变量(在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

我希望你能看到你哪里出错了。代码的手动跟踪总是有助于理解逻辑。