Linked List demands skills of managing pointers very well.

Most problems are not that hard for you to solve. But to get bug-free, you need to think it through.

Key Points:

- Add a dummyNode, if head node might be changed
- How to process current node?

Make sure the pointers are in-order

- How to move to next node?

If you have changed the original node, the next pointer might not be what you want

- Whether we need to maintain the previous node?

Common Problems:

- Insert a Node in Sorted List
- Remove a Node from Linked List 3. Reverse a Linked List
- Merge Two Linked Lists
- Find the Middle of a Linked List

The most impressive problems to me:

See all linkedlist problems: #linkedlist

- Review: Linked List Problems
- LintCode: Middle of Linked List
- LintCode: Insert Node in Sorted Linked List
- LintCode: Find Node in Linked List
- LintCode: Count Linked List Nodes
- LintCode: Convert Linked List to Array List
- LintCode: Convert Array List to Linked List
- Leetcode: Swap Nodes in Pairs
- Leetcode: Split Linked List in Parts
- Leetcode: Sort the Matrix Diagonally
- Leetcode: Sort List
- Leetcode: Rotate List
- Leetcode: RLE Iterator
- Leetcode: Reverse Nodes in k-Group
- Leetcode: Reverse Linked List II
- Leetcode: Reverse Linked List
- Leetcode: Reorder List
- Leetcode: Remove Zero Sum Consecutive Nodes from Linked List
- Leetcode: Remove Nth Node From End of List
- Leetcode: Remove Linked List Elements
- Leetcode: Remove Duplicates from Sorted List II
- Leetcode: Remove Duplicates from Sorted List
- Leetcode: Random Flip Matrix
- Leetcode: Print Immutable Linked List in Reverse
- Leetcode: Plus One Linked List
- Leetcode: Partition List
- Leetcode: Palindrome Linked List
- Leetcode: Odd Even Linked List
- Leetcode: Numbers At Most N Given Digit Set
- Leetcode: Nth Magical Number
- LeetCode: Minimum Time to Build Blocks
- Leetcode: Middle of the Linked List
- Leetcode: Merge Two Sorted Lists
- LeetCode: Merge k Sorted Lists
- Leetcode: Maximum Equal Frequency
- LeetCode: Longest Common Prefix
- Leetcode: Linked List Cycle II
- Leetcode: Linked List Cycle
- Leetcode: Linked List Components
- Leetcode: LFU Cache
- LeetCode: Intersection of Two Linked Lists
- LeetCode: Intersection of Two Arrays II
- Leetcode: Insertion Sort List
- Leetcode: Insert into a Cyclic Sorted List
- Leetcode: Flip Columns For Maximum Number of Equal Rows
- Leetcode: Flatten Binary Tree to Linked List
- Leetcode: Flatten a Multilevel Doubly Linked List
- Leetcode: Exam Room
- Leetcode: Design Linked List
- Leetcode: Delete Node in a Linked List
- Leetcode: Delete Columns to Make Sorted II
- Leetcode: Copy List with Random Pointer
- Leetcode: Convert Binary Search Tree to Sorted Doubly Linked List
- Leetcode: Clumsy Factorial
- Leetcode: Add Two Numbers II
- Leetcode: Add Two Numbers

See more blog_posts.