Plus One Linked List - Problem

Given a non-negative integer represented as a linked list of digits, plus one to the integer.

The digits are stored such that the most significant digit is at the head of the list.

For example, the number 123 is stored as 1 → 2 → 3.

Goal: Add 1 to this number and return the modified linked list.

Input & Output

Example 1 — Basic Addition
$ Input: head = [1,2,3]
Output: [1,2,4]
💡 Note: The number is 123, plus one gives 124, represented as 1→2→4
Example 2 — Carry Propagation
$ Input: head = [4,3,2,1]
Output: [4,3,2,2]
💡 Note: The number is 4321, plus one gives 4322, represented as 4→3→2→2
Example 3 — All Nines
$ Input: head = [9,9,9]
Output: [1,0,0,0]
💡 Note: The number is 999, plus one gives 1000, requiring a new head node: 1→0→0→0

Constraints

  • 1 ≤ Number of nodes ≤ 100
  • 0 ≤ Node.val ≤ 9
  • The number does not have leading zeros, except the number 0 itself

Visualization

Tap to expand
Plus One Linked List: 1→2→3 + 1 = 1→2→4INPUT123Represents number: 123ADD 1 ↓OUTPUT124Represents number: 124Key Challenge:Handle carry fromright to left
Understanding the Visualization
1
Input
Linked list representing digits: 1→2→3 (number 123)
2
Process
Add 1 to the rightmost digit with carry propagation
3
Output
Modified linked list: 1→2→4 (number 124)
Key Takeaway
🎯 Key Insight: Use recursion to reach the rightmost digit first, then propagate carry back to handle the addition properly
Asked in
Google 15 Facebook 12 Amazon 8 Microsoft 6
32.0K Views
Medium Frequency
~15 min Avg. Time
890 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen