【发布时间】:2021-04-04 16:56:42
【问题描述】:
我有以下代码可以反转链表(我知道它是正确的)。我对链表比较陌生,我对代码本身有一些疑问:
def reverseList(self, head: ListNode) -> ListNode:
if head == None:
return None
if head.next == None:
return head
prev = head
curr = head
nex = head.next
while nex:
curr = nex
nex = nex.next
curr.next = prev
prev = curr
head.next = None
return curr
我了解与两个“if”语句相关的代码。 问题:
- 'prev' 和 'curr' - 我说这些是指针对吗?
- 'nex = head.next' 中的 'head.next' 指的是 head 之后的节点,还是从 head 指向下一个节点的指针?
(另外,什么是“指针”——这是将一个节点连接到链表中的另一个节点吗?——我理解链表,它只是我想要弄清楚的代码中的引用)
在while语句中:
- 我们执行 'curr = nex' 将 curr 指针从 head 移动到 nex (=head.next) - 我读对了吗?
- 'nex = nex.next' 这是做什么的,我们是简单地将 nex 分配给 nex.next ,还是我们建立从 head 之后的节点到该节点之后的节点的连接/地址?
while 循环中的代码我很难理解,如果有人可以解释一两行可能真的很有帮助,因为我认为大多数都具有相同的含义。非常感谢
【问题讨论】:
标签: python linked-list