Set list next to None



当我试图使链表的节点pnext属性指向None时,我使用p.next = None。但是如果我想让节点对应p.nextNone呢?

一个例子是当尝试旋转链表时,它以节点的next等于None结束,我想使新列表的最后一个元素的next指向None,但我认为我一直在删除它指向的元素。

这是我的代码旋转列表的k位置。如果您想查看问题的完整描述,请参阅此处

def rotate(head, k):
'''
head is pointer to the head, k is the number of positions to rotate
'''
if not head or k == 0:
    return head
p = head
d = head
counter = 1
while p.next != None:
    counter += 1
    p = p.next
out = ListNode(0)
if k % counter == 0:
    return head
if counter < k:
    counter = counter % k
for _ in range(counter):
    p.next = d
    d = d.next
    p = p.next
out = p
d.next.next = None
return out

听起来您想要获取最后的k值并将它们附加到前面。

p.next是下一个节点。一般来说,当我们想要改变pnext时,我们需要抓取temp = p.next p.next = newNode,然后我们可以继续。

在这种情况下,我会找到列表的长度,设置tail.next = head,减去k(考虑环绕),然后向前走到N-k,并设置该节点的p.next = None

类似:

p, len, prev = head, 0, None
while p:
  prev = p
  p = p.next
  len += 1
# prev is tail, set it's next to head
prev.next = head
# find the node to detach
p = head
for i in xrange(len):
  p = p.next
p.next = None

你需要找出角落的情况

相关内容

  • 没有找到相关文章

最新更新