물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

61. Rotate List

BEstyle 2023. 1. 11. 00:58

Given the head of a linked list, rotate the list to the right by k places.

 

Example 1:

Input: head = [1,2,3,4,5], k = 2
Output: [4,5,1,2,3]

Example 2:

Input: head = [0,1,2], k = 4
Output: [2,0,1]

 

Constraints:

  • The number of nodes in the list is in the range [0, 500].
  • -100 <= Node.val <= 100
  • 0 <= k <= 2 * 109

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        if head==None or head.next==None:
            return head
        curr=head
        length=1
        while curr.next:
            curr=curr.next
            length+=1
        curr.next=head
        idel = length-(k%length)
        curr=head
        for i in range(idel-1):
            curr=curr.next
        head=curr.next
        curr.next=None
        return head

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

259. 3Sum Smaller  (0) 2023.01.12
234. Palindrome Linked List  (0) 2023.01.11
80. Remove Duplicates from Sorted Array II  (0) 2023.01.11
718. Maximum Length of Repeated Subarray  (0) 2023.01.11
706. Design HashMap  (0) 2023.01.10