我正在反向链接列表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
答案 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
我希望你能看到你哪里出错了。代码的手动跟踪总是有助于理解逻辑。