题目
反转一个单向链表
- 保存当前节点的下一个节点,然后让当前节点指向保存的上一个节点,一开始上一个节点为 null,然后当前节点变成保存的下一个节点,上一个节点变成上次的当前节点
function reverseNode(head) {
let pre = null;
let next = null;
while (head !== null) {
const next = head.next; // 保存下一个节点
head.next = pre;// 当前节点指向上一个保存的节点
pre = head;// 上一个节点指向当前节点
head = next;// 去到保存的下一个节点
}
return pre;
}
反转双向链表
- 和反转单向链表一样,保存下一个节点和当前节点
function reverseDoubleNode(head) {
let pre = null;
let next = null;
while (head !== null) {
const next = head.next;
head.next = pre;
head.pre = next;
pre = head;
head = next;
}
return pre;
}