反转链表

题目 #

牛客网

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

解题思路 #

  1. 三个指针
public ListNode ReverseList(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }

    ListNode pre = head, cur = head.next, next;
    pre.next = null;

    while (cur != null) {
        next = cur.next;
        cur.next = pre;

        pre = cur;
        cur = next;
    }

    return pre;
}