📅  最后修改于: 2023-12-03 15:39:19.181000             🧑  作者: Mango
当我们需要将一个链表的最后 M 个节点附加到该链表的开头时,可以采取如下步骤:
下面是一个使用 Python 语言实现的示例代码片段:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def append_last_m_to_head(head: ListNode, m: int) -> ListNode:
if not head or not head.next:
return head
p1, p2 = head, head
for i in range(m):
if not p1:
return head
p1 = p1.next
while p1.next:
p1, p2 = p1.next, p2.next
p1.next = head
new_head = p2.next
p2.next = None
return new_head
注:上述代码中,ListNode 表示链表的节点,val 表示该节点的值,next 表示指向下一个节点的指针。append_last_m_to_head 函数接收两个参数:head 表示链表的头节点,m 表示需要将链表的最后 M 个节点附加到链表的开头。