给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入: head = [1,2,3,4,5]
输出: [5,4,3,2,1]
提示:
- 链表中节点的数目范围是
[0, 5000] -5000 <= Node.val <= 5000
代码思路
链表的题一般都是玩指针 先想一下,我们有一个curr,一开始指向的是第一个节点,prev指向的是curr的前一个节点,如果第一个的前一个节点没有那就设为空(null),我们也永远要把curr.next设置成prev,然后curr一个一个往前挪,prev也往前挪,也继续把curr.next设置成prev;这样这个链表也就反转过来了,此时就会出现一个问题,curr怎么挪过去,所以就有了next;
代码展示
var reverseList = function(head) {
let prev = null;
//指向第一个节点
let curr = head;
//指向同一个节点
let next = null;
while(curr!==null){
next = curr.next;
curr.next = prev;
prev = curr;
curr = next
}
return prev
};