[Leet Code] 328. Odd Even Linked List (홀짝 연결 리스트)

yunan·2021년 1월 23일
0
post-thumbnail

🔦 문제 링크

🔊 파이썬 알고리즘 인터뷰 책을 참고했습니다.

  • 문제

연결리스트가 주어지면 짝수 노드 홀수 노드를 그룹화하여 홀수 노드가 먼저오도록 재구성하세요.

✍️ 풀이


  • 반복 구조 풀이
    간단하게 홀수 노드인 것 부터 그룹핑해주면서 남은 짝수노드들을 연결해주면 된다.

주의 할 점은 while문의 조건이 짝수 노드와 짝수노드가 가르키는 다음노드가 None이면 loop를 빠져나온다는 점이다.

🛠 코드


class Solution:
    def oddEvenList(self, head: ListNode) -> ListNode:
        if head is None:
            return None
        
        odd = head
        even = even_head = head.next
        
        while even and even.next:
            odd.next = odd.next.next
            even.next = even.next.next
            even = even.next
            odd = odd.next
        
        odd.next = even_head
        return head

📝 정리


🎈 참고


Book 링크

profile
Go Go

0개의 댓글