提问人:Erick Pruneda 提问时间:7/9/2023 更新时间:7/9/2023 访问量:25
为什么 Prev 是返回变量解决方案?
why is prev the return variable solution?
问:
所以我找到了 leetcode #206(反向链表)的这个代码解决方案,我一直想知道为什么变量 prev 是解决方案?
代码是:
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
# setting pointers
prev, curr = None, head
while curr is not None:
nxt = curr.next
curr.next = prev
prev = curr
curr = nxt
return prev
让我们设置一个 [1, 2, 3, 4, 5] 链表 在迭代结束时,prev 指向最后一个节点 (5)。那么,如果 prev 只是一个节点而不是整个链表,为什么返回 prev 是解决方案。
答:
1赞
BoppreH
7/9/2023
#1
因为在链表中,每个节点本身就是一个列表。空列表由值表示,任何非 None 值都被视为列表的第一个元素。但更重要的是,该头节点将具有指向下一个值的链接,依此类推递归,因此您拥有遍历整个列表所需的所有信息。None
您也可以将链接视为一个子切片:大致相当于 ,即从第二个元素开始的切片。而且会.所以只是,即整个列表。head.next
list[1:]
head.next.next
list[2:]
head
list[0:]
上一个:我在函数中找不到错误
评论
head