본문 바로가기
Coding Test/LeetCode

[LeetCode] 328. Odd Even Linked List [Python(파이썬)]

'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀

문제 👉 <Odd Even Linked List - LeetCode>

1. 문제 (홀짝 연결리스트)

연결 리스트를 홀수 노드 다음에 짝수 노드가 오도록 재구성해라.

공간 복잡도 O(1), 시간 복잡도 O(n)에 풀이하라.

2. 풀이

  • 반복문을 이용한 풀이

3. 코드

  • 반복문을 이용한 풀이
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def oddEvenList(self, head: ListNode) -> ListNode:
        #종료 조건
        if not head:
            return None

        odd, even = head, head.next
        even_head = head.next # 홀,짝 리스트를 연결하기 위해 필요!!

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

        odd.next = even_head      
        return head
  • 결과 :
방식 Status Runtime Memory Language
반복문 [Accepted] 36 ms 16.3 MB python3


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글