leetcode - 1669. Merge In Between Linked Lists

Description

You are given two linked lists: list1 and list2 of sizes n and m respectively.

Remove list1's nodes from the ath node to the bth node, and put list2 in their place.

The blue edges and nodes in the following figure indicate the result:

Build the result list and return its head.

Example 1:

复制代码
Input: list1 = [10,1,13,6,9,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
Output: [10,1,13,1000000,1000001,1000002,5]
Explanation: We remove the nodes 3 and 4 and put the entire list2 in their place. The blue edges and nodes in the above figure indicate the result.

Example 2:

复制代码
Input: list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
Output: [0,1,1000000,1000001,1000002,1000003,1000004,6]
Explanation: The blue edges and nodes in the above figure indicate the result.

Constraints:

复制代码
3 <= list1.length <= 10^4
1 <= a <= b < list1.length - 1
1 <= list2.length <= 10^4

Solution

No other comments, just do simulation.

Time complexity: o ( n 1 + n 2 ) o(n1+n2) o(n1+n2)

Space complexity: o ( 1 ) o(1) o(1)

Code

python3 复制代码
# 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:
        a_node, b_node = list1, list1
        b -= a - 1
        while a > 1:
            a_node = a_node.next
            a -= 1
        b_node = a_node.next
        while b > 0:
            b_node = b_node.next
            b -= 1
        a_node.next = list2
        list2_end = list2
        while list2_end.next:
            list2_end = list2_end.next
        list2_end.next = b_node
        return list1
相关推荐
地平线开发者1 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者2 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
星星火柴9363 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
艾莉丝努力练剑4 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
C++、Java和Python的菜鸟5 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀5 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散1125 小时前
01数据结构-Prim算法
数据结构·算法·图论
起个昵称吧5 小时前
线程相关编程、线程间通信、互斥锁
linux·算法
myzzb6 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
旺小仔.7 小时前
双指针和codetop复习
数据结构·c++·算法