Odd Even LinkedList
Updated:
번갈아 가면서 넣어줘야 하기 때문에, 홀수번째 노드를 처음위치, 짝수번째 노드를 처음의 다음위치(2번째)에 놓고 시작을 한다 그다음 홀수번째 노드를 먼저 순차적으로 순회하면서 값을 집어넣는다 단 예외처리를 해줘야 하는것이, 2칸씩 건너가야 하는데, 2칸을 가기전에 1칸만 갔는데도 null인경우는 NullPointerException이 나므로 1칸씩 이동해주면된다.
by Java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode oddEvenList(ListNode head) {
if (head == null) return null;
ListNode first = head;
ListNode second = head.next;
ListNode ans = null;
ListNode cur = null;
while (first != null) {
int value = first.val;
if (cur == null) {
cur = new ListNode(value);
ans = cur;
} else {
cur.next = new ListNode(value);
cur = cur.next;
}
if (first.next != null) first = first.next.next;
else first = first.next;
}
while (second != null) {
int value = second.val;
if (cur == null) {
cur = new ListNode(value);
cur = ans;
} else {
cur.next = new ListNode(value);
cur = cur.next;
}
if (second.next != null) second = second.next.next;
else second = second.next;
}
return ans;
}
}
Leave a comment