LeetCode简单题之合并两个链表
題目
給你兩個(gè)鏈表 list1 和 list2 ,它們包含的元素分別為 n 個(gè)和 m 個(gè)。
請(qǐng)你將 list1 中下標(biāo)從 a 到 b 的全部節(jié)點(diǎn)都刪除,并將list2 接在被刪除節(jié)點(diǎn)的位置。
下圖中藍(lán)色邊和節(jié)點(diǎn)展示了操作后的結(jié)果:
請(qǐng)你返回結(jié)果鏈表的頭指針。
示例 1:
輸入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
輸出:[0,1,2,1000000,1000001,1000002,5]
解釋:我們刪除 list1 中下標(biāo)為 3 和 4 的兩個(gè)節(jié)點(diǎn),并將 list2 接在該位置。上圖中藍(lán)色的邊和節(jié)點(diǎn)為答案鏈表。
示例 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]
解釋:上圖中藍(lán)色的邊和節(jié)點(diǎn)為答案鏈表。
提示:
3 <= list1.length <= 10^4
1 <= a <= b < list1.length - 1
1 <= list2.length <= 10^4
來(lái)源:力扣(LeetCode)
解題思路
??題目難度不大,注意在相應(yīng)的位置截?cái)噫湵砑纯?。list2想要接上list1剩下的尾巴,需要將list2的尾指針求出來(lái)。
# 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:temp=list1p=tempq=tempcount=0while temp.next:temp=temp.nextcount+=1if count==a-1:p=tempif count==b+1:q=tempp.next=list2while list2.next:list2=list2.nextlist2.next=qreturn list1
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之合并两个链表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode中等题之删除链表的中间节
- 下一篇: LeetCode简单题之长按键入