题目描述
解题思路
- 采用一个指针指向当前节点,cur节点的初始值为head.
- 采用另一个指针指向当前节点的前一个节点(pre),该节点的初始值为null.
- 每当我们修改当前指针的指向的时候,一定要保存当前指针的后一个节点.
解题代码
var reverseList = function(head) {
let cur = head;
let pre = null;
while (cur) {
// 首先保存当前节点的下一个节点
let temp = cur.next;
cur.next = pre;
pre = cur;
cur = temp;
}
return pre;
};
题目反思
- 学会使用双指针来解决反转链表问题。
- 本题尤其值的我们反复练习,因为本题在修改指针的指向的时候,需要保存当前指针的下一个节点,这是解决反转链表的一个很好的思路。