< 문제 간단설명 >
홀수번째 노드들을 앞으로 오게 하고, 짝수번째 노드들은 뒤로 보낸다.
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var oddEvenList = function(head) {
if(!head) return head;
// head의 맨 처음을 가리키도록
let oddList = head;
// head의 맨 처음노드의 다음을 가리키도록(2번째)
let evenList = head.next;
let oddListHead = oddList;
let evenListHead = evenList;
// 한칸씩 건너뛰면서 홀수와 짝수번째 각각 알맞게 next로 설정
while(oddList.next && evenList.next) {
oddList.next = oddList.next.next;
oddList = oddList.next;
evenList.next = evenList.next.next;
evenList = evenList.next;
}
// 홀수번째 리스트 다음에 짝수번째 리스트가 오도록
oddList.next = evenListHead;
let result = oddListHead;
return result;
};
'PS > LeetCode' 카테고리의 다른 글
LeetCode / Greedy / 2131번 / Longest Palindrome by Concatenating Two Letter Words / JS (0) | 2023.04.28 |
---|---|
LeetCode / Linked List / 148번 / Sort List / JS (0) | 2023.04.28 |
LeetCode / Simulation / 1706번 / Where Will the Ball Fall / JS (0) | 2023.04.20 |
LeetCode / Linked List / 234번 / Palindrome Linked List / JS (0) | 2023.04.19 |