동생에게 전달해준 서류를 순서대로 서랍에 정리해달라고 부탁했더니, 서류를 반대 순서로 두었다.
다시 정렬하기 위해, 이미 정리된 순서의 반대로 서류를 역 정렬 시키는 프로그램을 제작해라.
입력값
1 -> 3 -> 7 -> null 3 -> 1 -> 9 -> 6 -> 4 -> null 6 -> 9 -> 7 -> 2 -> 1 -> 4 -> 3 -> null
출력값
#1 7 -> 3 -> 1 -> null #2 4 -> 6 -> 9 -> 1 -> 3 -> null #3 6 -> 9 -> 7 -> 2 -> 1 -> 4 -> 3 -> null
// File 생성
function File(number) {
this.number = number;
this.next = null;
}
function LinkedList() {
this.head = null;
}
function answer(ll) {
let current = ll.head,
prev = null,
next;
// 1. 역 방향 정렬
while (current != null) {
next = current.next;
current.next = prev;
prev = current;
current = next;
}
// 2. head 업데이트
ll.head = prev;
return ll;
}