Re: [閒聊] 每日leetcode

作者: sustainer123 (caster)   2024-03-20 11:04:05
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
作者: JIWP (JIWP)   2024-03-20 11:07:00
大師
作者: Smallsh (Smallsh)   2024-03-20 11:09:00
小駝峰
作者: digua (地瓜)   2024-03-20 11:10:00
大師
作者: NCKUEECS (小惠我婆)   2024-03-20 11:16:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com