본문 바로가기
문제 풀이/leetcode

Odd Even Linked List

by akatapata 2022. 6. 14.

Odd Even Linked List

  • 입력 : 연결리스트, 길이는 0 ~ 10^4
  • 출력 : 홀수 번째 Nodes를 앞으로(홀수 번째 Nodes 순서는 유지), 짝수 번째 Nodes는 뒤로 재배치(짝수 번째 Nodes 순서는 유지)
  • 조건 : 공간복잡도 O(1) 시간복잡도 O(N)

Solution

  • 홀수번째 Node 끼리, 짝수번째 Node 끼리 모으고 마지막에 합치기
class Solution:
    def oddEvenList(self, head: Optional[ListNode]) -> Optional[ListNode]:

        if not head or not head.next: return head

        evenhead = head.next        
        odd, even = head, evenhead        

        while even and even.next:            
            odd.next = even.next            
            even.next = even.next.next                        
            odd, even = odd.next, even.next

        odd.next = evenhead      
        return head

'문제 풀이 > leetcode' 카테고리의 다른 글

Valid Parentheses  (0) 2022.07.10
Product of Array  (0) 2022.05.11
[leetcode] Group Anagrams  (0) 2022.04.19
[leetcode] most common word  (0) 2022.04.19
[leetcode] valid palindrome  (0) 2022.02.16