【问题标题】:Reversing a linked list(Iterative method)反转链表(迭代方法)
【发布时间】:2021-06-27 01:43:01
【问题描述】:

我正在编写一个用于在 python 中反转链表的代码。 以下代码未通过测试用例:

class ListNode(object):
    def __init__(self, val=0, next=None):
         self.val = val
         self.next = next
class Solution(object):
    def reverseList(self, head)    
        prev, curr = None, head
        while curr:
            curr.next = prev
            prev = curr 
            curr = curr.next
        return prev

这段代码通过时:

class Solution(object):        
    def reverseList(self, head):  # Iterative
        prev, curr = None, head
        while curr:
            curr.next, prev, curr = prev, curr, curr.next
        return prev

两者有什么区别?

【问题讨论】:

标签: python linked-list


【解决方案1】:

在您展开的代码中,当您到达最后一行时,curr.next 已被prev 覆盖。它不再具有原来的价值。 prevcurr 都将指向旧的 prev

【讨论】:

    猜你喜欢
    • 2012-10-08
    • 2019-01-20
    • 1970-01-01
    • 2015-01-20
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多