1 LinkedList

  • Design

https://leetcode.com/problems/design-linked-list/description/

  • Reverse

public ListNode reverseList(ListNode head) {
    /* iterative solution */
    ListNode prev = null;
    while (head != null) {
        ListNode next = head.next;
        head.next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

public ListNode reverseList(ListNode head) {
    /* recursive solution */
    return reverseListInt(head, null);
}

private ListNode reverseListInt(ListNode prev, ListNode head) {
    if (head == null)
        return prev;
    ListNode next = head.next;
    head.next = prev;
    return reverseListInt(head, next);
}

*Reverse for an interval [m, n]

  • Insert

  • Delete

Remove Nth Node From End of List

Remove Linked List Elements

(注意下没准要删除的元素是连续的,那种情况下不要动 head)

Delete Node in a Linked List

(Shift the elements after the deleted one)

Remove Duplicates from Sorted List

  • Swap

Swap Nodes in Pairs

Odd Even Linked List (odd place ones first, then even ones)

  • Merge (Sorted)

  • Middle

  • Reverse Print

Last updated