Python Swap For Leetcode 206 - PullRequest
       20

Python Swap For Leetcode 206

0 голосов
/ 27 мая 2019
    Input: 1->2->3->4->5->NULL
    Output: 5->4->3->2->1->NULL
    https://leetcode.com/problems/reverse-linked-list/

Я построил два указателя.сегодняшний день и пред.Я поменял их местами в итерации.Но я не могу понять, почему cur.next должен быть поставлен в конце.Основываясь на моем понимании, python swap создаст временный кортеж.a, b, c = b, c, a вернет тот же результат, что и b, a, c = c, b, a. Но в этом вопросе, если я использую cur, prev, cur.next = cur.next, cur,пред.он вернет ошибку.кто-нибудь может это объяснить?Спасибо!

     # this can work 
       def reverseList(self, head):
            """
            :type head: ListNode
            :rtype: ListNode
            """
            cur, prev = head, None
            while cur:
                prev, cur.next, cur = cur, prev, cur.next
            return prev

    # these two cannot work:
               # cur, cur.next,prev = cur.next, prev, cur
               # cur, prev, cur.next = cur.next, cur, prev

AttributeError: 'NoneType' object has no attribute 'next'
Line 18 in reverseList (Solution.py)
Line 59 in main (Solution.py)
Line 67 in <module> (Solution.py)
...