算法:反转链表。

Posted liguo-wang

tags:

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

题目描述

输入一个链表,反转链表后,输出新链表的表头。

思路

定义当前head,前序节点pre,后续节点next;
依次遍历所有节点,将所有节点的next指向前一个节点。
package LG.nowcoder;

/**
 * @Author liguo
 * @Description 输入一个链表,反转链表后,输出新链表的表头。
 * 思路:定义当前head,前序节点pre,后续节点next;
 * 依次遍历所有节点,将所有节点的next指向前一个节点
 * @Data 2018-08-13 23:24
 */
public class Solution4 {
    public ListNode ReverseList(ListNode head) {
            ListNode pre = null;
            ListNode next = null;
            while (head != null) {
                next = head.next;//持有下一个节点的引用
                head.next = pre;//将当前节点对下一个节点的引用指向前一个节点
                pre = head;//将前一个节点指向当前节点
                head = next;//将当前节点指向下一个节点
            }
            return pre;
    }
}

 

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

算法-反转链表

算法-反转链表

代码随想录算法训练营第三天 | 203.移除链表元素707.设计链表 206.反转链表

代码随想录算法训练营第三天 | 203.移除链表元素707.设计链表 206.反转链表

算法总结之 反转单向和双向链表

算法LeetCode 反转链表(递归)关键步骤理解