Re: [閒聊] 每日leetcode

看板Marginalman作者 (caster )時間1月前 (2024/03/20 11:04), 編輯推噓1(103)
留言4則, 4人參與, 1月前最新討論串62/241 (看更多)
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

03/20 11:07, 1月前 , 1F
大師
03/20 11:07, 1F

03/20 11:09, 1月前 , 2F
小駝峰
03/20 11:09, 2F

03/20 11:10, 1月前 , 3F
大師
03/20 11:10, 3F

03/20 11:16, 1月前 , 4F
大師
03/20 11:16, 4F
文章代碼(AID): #1b-b8efU (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1b-b8efU (Marginalman)