前端内参
搜索文档…
贰.1.2 链表
(单)链表的JavaScript数据结构如下:
1
let Node = {//链表中的一个结点
2
val : 1891, //结点的值
3
next: node //一个指针指向下一个结点。若结点为链表的尾端,则next的值是null
4
}
Copied!

01.反转链表

迭代法

1
var reverseList = function(head/*Node*/) {
2
if(!head || !head.next) return head;
3
var prev = null, curr = head;
4
while(curr) {
5
// 用于临时存储 curr 后继节点
6
var next = curr.next;
7
// 反转 curr 的后继指针
8
curr.next = prev;
9
// 变更prev、curr
10
// 待反转节点指向下一个节点
11
prev = curr;
12
curr = next;
13
}
14
head = prev;
15
return head;
16
}
Copied!

尾递归法

1
var reverseList = function(head/*Node*/) {
2
if(!head || !head.next) return head;
3
return reverse(null, head);
4
};
5
6
var reverse = function(prev, curr) {
7
if(!curr) return prev;
8
var next = curr.next;
9
curr.next = prev;
10
return reverse(curr, next);
11
};
Copied!

02.回形链表

最近更新 1yr ago