• LeetCode 1669. 合并两个链表


    1669. 合并两个链表

    Difficulty: 中等

    给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。

    请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置。

    下图中蓝色边和节点展示了操作后的结果:

    请你返回结果链表的头指针。

    示例 1:

    输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
    输出:[0,1,2,1000000,1000001,1000002,5]
    解释:我们删除 list1 中第三和第四个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。
    

    示例 2:

    输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
    输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]
    解释:上图中蓝色的边和节点为答案链表。
    

    提示:

    • 3 <= list1.length <= 10<sup>4</sup>
    • 1 <= a <= b < list1.length - 1
    • 1 <= list2.length <= 10<sup>4</sup>

    Solution

    # 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:
            dummy = pre = ListNode(-1)
            i = 0
            for i in range(b):
                if i < a:
                    pre.next = list1
                    pre = pre.next
                list1 = list1.next
            
            pre.next = list2
            while list2:
                pre = pre.next
                list2 = list2.next
            pre.next = list1.next
            return dummy.next
    
  • 相关阅读:
    redis简单使用及连接池
    初始Redis
    redis安装教程
    .whel文件的打开方式
    xpath选择器的使用,selenium使用
    爬虫之bs4的使用,之爬取汽车之家新闻,之代理池的搭建
    爬虫基础 之 爬取梨视频 模拟登陆 爬取妹子图
    git基本使用

    re模块正则表达式
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14219964.html
Copyright © 2020-2023  润新知