剑指offer 24题

Posted by franki on November 9, 2020

剑指offer 24题 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例 1

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

思路

使用 三个 变量 prev cur next,循环当中改变其指向

代码

function reverseList(head) {
    var curr = head;
    var prev = null;

    while (curr) {
        var next = curr.next;
        curr.next = prev;
        prev = curr;
        curr = next;
    }

    return prev;
}

复杂度分析

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)