LC: 369. Plus One Linked List
https://leetcode.com/problems/plus-one-linked-list/
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.
Example 1:
Input: head = [1,2,3]
Output: [1,2,4]Example 2:
Input: head = [0]
Output: [1]Constraints:
The number of nodes in the linked list is in the range
[1, 100].0 <= Node.val <= 9The number represented by the linked list does not contain leading zeros except for the zero itself.
Den Wert des letzten Knotens zu inkrementieren ist nicht genügend, da dieser Wert gleich 9 sein kann, was einen Übertrag impliziert. Vorherige Knoten kann auch den Wert 9 haben, wie z.B. 18999 oder 459999. Deswegen muss man den letzten Knoten ungleich 9 finden und die Werte davon anfangend inkrementieren. Für den Fall 9999 muss man auch einen Sentinel-Knoten am Anfang der Liste hinzufügen.
Details:
Nachdem man die Liste einmal durchläuft, muss man von dem bemerkten Knoten ungleich 9 die Liste wieder durchlaufen. Dieser Knoten kann der Sentinel-Knoten sein.
Solution and Further Explanation:
https://github.com/spiralgo/algorithms/pull/182
Default Code:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode plusOne(ListNode head) {
}
}The Essence:
Last updated