📅  最后修改于: 2023-12-03 15:09:37.441000             🧑  作者: Mango
other
在第 k
个位置在编写链表相关代码时,经常需要将一个链表插入到另一个链表的指定位置。本文将介绍如何实现将整个链表插入 other
在第 k
个位置的操作。
要将链表 L
插入到链表 other
的第 k
个位置,我们需要首先找到 other
的第 k-1
个节点,并将其 next
指针指向 L
的头节点,同时将 L
的最后一个节点的 next
指向剩下的 other
链表即可。
具体步骤如下:
other
的第 k-1
个节点 p
L
的最后一个节点 lastNode
的 next
指向 p
的下一个节点 next
p
的 next
指向 L
的头节点 head
other
下面是使用 Python 实现将链表 L
插入到链表 other
在第 k
个位置的代码片段:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def insertLinkedList(other: ListNode, L: ListNode, k: int) -> ListNode:
"""
将链表 L 插入到链表 other 的第 k 个位置
"""
if not other or not L or k < 1:
return other
# 找到 other 的第 k-1 个节点 p
p = other
for i in range(k-1):
if not p:
return other
p = p.next
# 找到 L 的最后一个节点 lastNode
lastNode = L
while lastNode.next:
lastNode = lastNode.next
# 插入操作
lastNode.next = p.next
p.next = L
return other
下面是使用例子,将链表 L
插入到链表 other
在第 3
个位置:
# 初始化链表 other 和 L
other = ListNode(1, ListNode(2, ListNode(3, ListNode(4))))
L = ListNode(5, ListNode(6, ListNode(7)))
# 将 L 插入到 other 的第 3 个位置
other = insertLinkedList(other, L, 3)
# 打印结果
# 预期输出:1 -> 2 -> 5 -> 6 -> 7 -> 3 -> 4
p = other
while p:
print(p.val, end=' -> ')
p = p.next
以上就是将整个链表插入 other
在第 k
个位置的方法,希望对大家有所帮助。