来自北大算法课的Leetcode题解:1669. 合并两个链表

该文章提供了一个Python解法,用于在链表中合并两个给定范围内的列表。代码主要涉及链表头尾的操作,先遍历list1找到指定位置,然后连接list2,最后调整list2的末尾连接回list1的原始尾节点。
摘要由CSDN通过智能技术生成

代码仓库Github | Leetcode solutions @doubleZ0108 from Peking University.

  • 解法1(T45% S50%):主要考察链表头尾的操作,首先遍历list1,报错a b下标的指针,注意头指针要保留a前一位的位置这样才能往下接;然后将头指针后面接上list2,然后遍历list2直到倒数第一个节点,将其后面接上tail.next
class Solution:
    def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
        head, tail = None, None
        move = list1
        for i in range(b+1):
            if i == a-1:
                head = move
            elif i == b:
                tail = move
            move = move.next
        
        head.next = list2
        while list2.next:
            list2 = list2.next
        list2.next = tail.next
        return list1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doubleZ0108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值