파비의 매일매일 공부기록

Today's Challenge 본문

Problem Solving/LeetCode

Today's Challenge

fabichoi 2022. 7. 21. 23:45

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

 

Reverse Linked List II - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

뒤집혀진 링크드 리스트 문제. 자료구조 관련이네 오늘은.

class Solution:
    def reverseBetween(self, head: Optional[ListNode], m: int, n: int) -> Optional[ListNode]:
        if not head:
            return None
        left, right = head, head
        stop = False
        
        def recAndRev(right, m, n):
            nonlocal left, stop
            
            if n == 1:
                return
            
            right = right.next
            
            if m > 1:
                left = left.next
            
            recAndRev(right, m-1, n-1)
            
            if left == right or right.next == left:
                stop = True
                
            if not stop:
                left.val, right.val = right.val, left.val
                left = left.next
        
        recAndRev(right, m, n)
        return head
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

Today's Challenge  (0) 2022.07.23
Today's Challenge  (0) 2022.07.22
Today's Challenge  (0) 2022.07.20
Today's Challenge  (0) 2022.07.19
Today's Challenge  (0) 2022.07.18
Comments