Leetcode 206. Reverse Linked List

Reverse a singly linked list.

思路:
反转一个链表,反转时需要把当前节点的next指向前一个节点,因此用两个游标指针pre和dummy分别指向前一个和当前节点。
反转时,需要用一个临时节点存储当前节点的next。

public ListNode reverseList(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }

    ListNode pre = null;
    ListNode dummy = head;
    while (dummy != null) {
        ListNode next = dummy.next;
        dummy.next = pre;
        pre = dummy;
        dummy = next;
    }

    return pre;
}

你可能感兴趣的:(Leetcode 206. Reverse Linked List)