Problem
- Linked lists are data structures composed of nested or chained objects, each containing a single value and a reference to the next object.
- 링크드 리스트는 중첩 또는 연결된 객체로 구성된 데이터 구조이다.
- Write a function that converts a list to an array.
list
const list1 = { value: 1, next: { value: 2, next: null } };
const list2 = { value: 'Sam', next: { value: 'Leo', next: null } };
Solution 01
function listToArray(list) {
for (var arr = []; list !== null; list = list.next) {
arr.push(list.value);
}
return arr;
}
push()
: 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.
Solution 02
function listToArray(list) {
let arr = [];
for (let node = list; node; node = node.next) {
arr.push(node.value);
}
return arr;
}
Solution 03
function listToArray(list) {
let arr = [];
while (list) {
arr.push(list.value);
list = list.next;
}
return arr;
}
Solution 04
function listToArray(list) {
return !list ? [] : [list.value].concat(listToArray(list.next));
}
concat()
: 두 개 이상의 배열을 결합하고, 새 배열을 반환한다.
Solution 05
function listToArray(list) {
if (list === null) return [];
return [list.value, ...listToArray(list.next)];
}