精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/merge-in-between-linked-lists 1669. Merge In Between Linked Lists 給你兩個鏈表(list1 and list2)與兩個數字(a and b) 你需要移除list1中a到b的節點並替換為list2 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. 思路: 遍歷list1 找到a-1和b+1節點 a-1節點指向list2的開頭 遍歷list2 找到list2的結尾 結尾指向b+1節點 回傳list1 Python Code: # 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: c = 0 left = None right = None tmp = ListNode(0) tmp.next = list1 while right == None: if c == a-1: left = list1 if c == b+1: right = list1 c += 1 list1 = list1.next left.next = list2 while list2.next: list2 = list2.next list2.next = right return tmp.next -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.172.208 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710903848.A.A5E.html
JIWP: 大師 03/20 11:07
Smallsh: 小駝峰 03/20 11:09
digua: 大師 03/20 11:10
NCKUEECS: 大師 03/20 11:16