Python логика ListNode в Leetcode - PullRequest
0 голосов
/ 09 июня 2019

Вот определение класса ListNote в LeetCode:

class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None

Для кода:

result = ListNode(0)
#result = 0 -> None
result_tail = result
#result_tail = 0 -> None
result_tail.next = ListNode(1)
#result_tail = 0 -> 1 -> None
#result = 0 -> 1 -> None
result_tail = result_tail.next
#result_tail = 1 -> None
#result = 0 -> 1 -> None
result_tail.next = ListNode(2)
#result_tail = 1 -> 2 -> None
#result = 0 -> 1 -> 2 -> None
result_tail = result_tail.next
#result_tail = 2 -> None
#result = 0 -> 1 -> 2 -> None

Значения в комментариях взяты из моих предположений.Я не могу понять, что шаг

result_tail = result_tail.next

result_tail = result передается по ссылке, поэтому, когда result_tail становится 1 -> None, result также должен становиться 1 -> None.Почему result все еще держит 0 -> 1 -> None?И когда result_tail становится 1 -> 2 -> None, почему result расширяет свой хвост до 0 -> 1 -> 2 -> None?

result_tail = result_tail.next

- это что-то вроде

result_tail = result.next.next    

Может кто-нибудь сказать мне логикуздесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...