1669. 合并两个链表
原始题目链接:https://leetcode-cn.com/problems/merge-in-between-linked-lists/
给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。
解题思路:
这道题不难,只要找到list1中的删除片段的前驱节点和后继节点,然后接上list2的起始节点就可以了,具体实现看代码。
代码实现:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
if not list1:
return
dummy = ListNode(-1)
dummy.next = list1
cur = dummy
for _ in range(a):
cur = cur.next
pre = cur
cur = list1
for _ in range(b):
cur = cur.next
succ = cur.next
pre.next = list2
cur = list2
while cur.next:
cur = cur.next
cur.next = succ
return dummy.next