剑指offer56

204 阅读1分钟

题目描述

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

解题思路分析

在反转的时候只要记录下上一个节点就可,直接看代码吧

代码实现

public ListNode reverseList(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }
    ListNode pre = null;//用来记录上一个节点
    ListNode node = head;
    ListNode reverseHead = null;
    while (node != null) {
        ListNode next = node.next;
        if (next == null) {
            reverseHead = node;
        }
        node.next = pre;
        pre = node;
        node = next;
    }
    return reverseHead;
}