python-algorithm

leetcode 92. Reverse Linked List II

무적김두칠 2023. 2. 17. 18:01

https://leetcode.com/problems/reverse-linked-list-ii/description/

 

Reverse Linked List II - LeetCode

Can you solve this real interview question? Reverse Linked List II - Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list from position left to position right, and return the reversed lis

leetcode.com

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseBetween(self, head: ListNode, left: int, right: int-> ListNode:
        if not head or not head.next or left == right:
            return head
        
        # left-1 노드를 찾습니다.
        dummy = ListNode(-1)
        dummy.next = head
        prev = dummy
        for i in range(left - 1):
            prev = prev.next
        
        # right 노드를 찾습니다.
        cur = prev.next
        for i in range(left, right):
            next_node = cur.next
            cur.next = next_node.next
            next_node.next = prev.next
            prev.next = next_node
        
        return dummy.next
cs

사실 이건 제가 푼건 아니고.. ChatGPT에 넣고 풀어보랬는데 1초만에 주석달아서 풀어주네요.. 현타옵니다
저보다 훨씬 잘하는듯

반응형