返回
function Node(value) {
this.value = value;
this.next = null;
}
// 为方面查看,添加一个打印方法
Node.prototype.print = function () {
let n = this;
let str = '';
while (n) {
str += n.value;
n.next && (str += '->');
n = n.next;
}
console.log(str);
};
// 链表逆置方法
function reverse(node) {
if (!node) {
return null;
}
if (node.next == null) {
return node; // 最后一个节点逆置后必定是头结点
}
var newHead = reverse(node.next);
node.next.next = node;
node.next = null;
return newHead;
}
// 创建节点的辅助方法
function createLinkedList(...arr) {
if (arr.length === 0) {
return null;
}
var root = new Node(arr[0]);~~~~
var node = root;
for (var i = 1; i < arr.length; i++) {
node.next = new Node(arr[i]);
node = node.next;
}
return root;
}
// 测试
var root = createLinkedList(1, 2, 3, 4, 5);
root.print();
var newRoot = reverse(root);
newRoot.print();
