📅  最后修改于: 2023-12-03 15:10:02.570000             🧑  作者: Mango
当处理链表时,经常需要打印链表的子列表,本文将为您介绍如何打印给定索引指定的链表的子列表。
我们可以使用两个指针p和q来遍历链表。首先,将第一个指针p指向index位置的节点,将第二个指针q指向该节点后的第n个节点,如下所示。
p = head
for i in range(index):
p = p.next
q = p
for i in range(n):
q = q.next
然后,我们输出从p节点到q节点的这些节点。如下所示。
while p != q:
print(p.value, end=' ')
p = p.next
完整的打印给定索引指定的给定链表的子列表代码片段如下所示。
def print_sub_list(head, index, n):
p = head
for i in range(index):
p = p.next
q = p
for i in range(n):
q = q.next
while p != q:
print(p.value, end=' ')
p = p.next
下面是对print_sub_list函数的测试示例。
class ListNode:
def __init__(self, value=0, next=None):
self.value = value
self.next = next
def test():
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))
print_sub_list(head, 2, 2) # output: 3 4
test()
以上是打印给定索引指定的给定链表的子列表的具体算法及代码实现。