繁体   English   中英

反转链表(迭代方法)

[英]Reversing a linked list(Iterative method)

我正在编写用于反转 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

两者有什么区别?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM