새소식

PS/LeetCode

1669. Merge In Between Linked Lists

  • -

Problem : https://leetcode.com/problems/merge-in-between-linked-lists

 

Difficulty : Medium

 

Status : Solved

 

Time : ??:??:??

 


 

문제 설명

 


 

풀이

 

Leetcode 1일 1출첵도 이제부턴 병행하려고 한다(LeetCode가 요구하는 문제 결이 국내 출제 문제와는 결이 다른 느낌? 백준 문제들이 슬슬 매너리즘이 오는 느낌도 있었다...)

 

링크드리스트 list1, list2를 순차적으로 탐색하면서, list1의 삭제할 부분들을 체크하고 이를 list2에 이어주면 된다. list1의 a-1번째 노드의 next가 list2의 head에, list2의 tail의 next가 list1의 b+1번째 노드가 되도록 연결하면 된다.

 

풀이 코드

# 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:
        cur = list1
        cnt = 0
        while cur.next is not None :
            if cnt == a-1 :
                aPoint = cur
            if cnt == b :
                bPoint = cur.next
            cur = cur.next
            cnt += 1
        aPoint.next = list2
        while list2.next is not None :
            list2 = list2.next
        list2.next = bPoint
        return list1

풀이 완료!

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.