算法-反转一个单链表

Posted 鸿鹄当高远

tags:

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

示例:

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

在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!

 

public ListNode reverseList(ListNode head) {
    ListNode prev = null;
    ListNode curr = head;
    while (curr != null) {
        ListNode nextTemp = curr.next;
        curr.next = prev;
        prev = curr;
        curr = nextTemp;
    }
    return prev;
}

 

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

[每日算法220508] 单链表和双链表的反转

[每日算法220508] 单链表和双链表的反转

单链表逆置

java数据结构与算法之反转单链表

算法热门:反转单链表(LeetCode 206)

单链表的反转非递归算法