[Linked List, Medium] Odd Even Linked List

송재호·2025년 3월 14일
0

https://leetcode.com/problems/odd-even-linked-list/description/?envType=study-plan-v2&envId=leetcode-75

odd/even 두 개의 포인터를 두고 while 순회하면서 서로 next 포인터를 바꿔주면 된다.

짝수가 뒤로 붙기 때문에 while 조건은 (even != null && event.next != null)

이제 최종 홀수 노드의 next가 짝수의 시작이 되어야 하므로 연결해주면 된다.

class Solution {
    public ListNode oddEvenList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }

        ListNode odd = head;
        ListNode even = head.next;
        ListNode evenHead = even;

        while (even != null && even.next != null) {
            odd.next = even.next;
            odd = odd.next;

            even.next = odd.next;
            even = even.next;
        }

        odd.next = evenHead;
        return head;
    }
}
profile
식지 않는 감자

0개의 댓글