【发布时间】:2019-01-09 11:44:23
【问题描述】:
我正在尝试使用递归来反转链表。一切都很顺利,直到最后,我最终得到了破碎的结果。
谁能告诉我我做错了什么?
const reverseLinkedList = (node, newChildOldParent=null ) => {
if( node.next ){
reverseLinkedList(node.next, node);
}
node.next = newChildOldParent;
return node;
}
const someList = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
console.log(reverseLinkedList( someList ))
我明白了
{ value: 1, next: null }
而不是反向链表。
我哪里错了?
【问题讨论】:
-
和
debugger;@FrankerZ :) -
console.log()是永远的 -
您的问题是您可以颠倒列表,但最终您会再次获得第一个元素(随着堆栈的展开)。您的第一个元素现在是最后一个元素,并且没有
next节点。 -
感谢@Sandro 的回复。感谢您的时间。
-
@technoCorner 不客气 :)
标签: javascript algorithm recursion linked-list singly-linked-list