Пропарсить "односвязный список в обратном порядке".
Самому было тяжело въехать, почему же оно так работает, но все же mission complete :).
function reversePrint (linkedList) {
if (linkedList.next) reversePrint(linkedList.next);
console.log(linkedList.value);
}
var someList = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
reversePrint(someList); //4 3 2 1
Небольшой апдейт - раз имеется next, то хочется иметь и prev со ссылкой на родителя. Легким движением руки модифицируем функцию.
function reversePrint (linkedList) {
if (linkedList.next) {
linkedList.next.prev = linkedList;
reversePrint(linkedList.next);
}
if (!linkedList.prev) console.log(linkedList);
}
Выдаст в консоль она самый старший элемент (у которого нет родителя) а в дереве появятся обратные ссылки.
Линк на задачу