LeetCode简单题之合并两个链表
題目
給你兩個鏈表 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 中下標為 3 和 4 的兩個節點,并將 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^4
1 <= a <= b < list1.length - 1
1 <= list2.length <= 10^4
來源:力扣(LeetCode)
解題思路
??題目難度不大,注意在相應的位置截斷鏈表即可。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: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
總結
以上是生活随笔為你收集整理的LeetCode简单题之合并两个链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode中等题之删除链表的中间节
- 下一篇: LeetCode简单题之长按键入