反转一个单链表

反转一个单链表

1
2
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

解决思路

先提取下链表头结点(打断原有链表)。再从先剩下的链表中,取链表头结点。加到上一步取下来的节点的头部。引用LeetCode网友的一句话 斩断过去,不忘前事。依次往后完成链表反转。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/

var reverseList = function(head) {
let pre = null
while(head!=null){
let tmp = head.next
// 斩断过去
head.next = pre
pre = head
// 不忘前事
head = tmp
}
return pre
};
文章作者: I年少有为
文章链接: https://lemonlife.top/2020/02/13/leetcode-206/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 I年少有为