题目描述
leetcode链接:leetcode-cn.com/problems/fa…
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
思路描述
使用了迭代的方法。
举个例子,将
1 -> 2 -> 3 -> 4 -> 5 -> NULL
转换成
NULL <- 1 <- 2 <- 3 <- 4 <- 5
先把 1.next 存储到 next 变量上,然后让 1.next = prev , 接着将当前操作数赋给 prev ,将存储的 next 赋给下一个要操作的数,依次类推,知道当前操作数为 null 结束。
AC代码
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let cur = head;
let prev = null;
while(cur) {
let next = cur.next;
cur.next = prev;
prev = cur;
cur = next;
}
return prev;
};
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情