剑指 Offer 24. 反转链表

题目

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

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

限制:
0 <= 节点个数 <= 5000

注意:本题与主站206题相同

题解

public ListNode reverseList(ListNode head) {
    // 头结点
    ListNode node = new ListNode(0);
    while (head != null) {
        // 新节点
        ListNode n = new ListNode(head.val);
        // 新节点后继节点指向头结点后继
        n.next = node.next;
        // 头结点后继指向新节点
        node.next = n;
        head = head.next;
    }

    return node.next;
}