算法-反转链表

Posted natsu-cc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法-反转链表相关的知识,希望对你有一定的参考价值。

题目:

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

示例:

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

限制:

0 <= 节点个数 <= 5000

代码:

/**
 * Definition for singly-linked list.
 * function ListNode(val) 
 *     this.val = val;
 *     this.next = null;
 * 
 */
/**
 * @param ListNode head
 * @return ListNode
 */
var reverseList = function(head) 
    let prev = null;
    let curr = head;
    while(curr) 
        const next = curr.next;
        curr.next = prev;
        prev = curr;
        curr = next;
    
    return prev
;

思路:将链表的指针指向前一个即可,第一个指向null,直至遍历完所有。

以上是关于算法-反转链表的主要内容,如果未能解决你的问题,请参考以下文章

算法结构反转链表

算法结构反转链表

算法结构反转链表

算法结构反转链表

反转链表算法Java实现

算法-206. 反转链表