Problem of the day


You're given a positive integer represented in the form of a singly linked-list of digits. The length of the number is 'n'.
Add 1 to the number, i.e., increment the given number by one.
The digits are stored such that the most significant digit is at the head of the linked list and the least significant digit is at the tail of the linked list.
Input: Initial Linked List: 1 -> 5 -> 2
Output: Modified Linked List: 1 -> 5 -> 3
Explanation: Initially the number is 152. After incrementing it by 1, the number becomes 153.
The first line contains an integer 'n', the length of the number / the length of the linked list.
The second line contains 'n' space separated integers denoting the digits of the number / the nodes of the linked list.
Print space - separated integers denoting the nodes of the output linked list.
You do not need to print anything. You're given the head of the linked list, return the head of the modified list.
3
1 5 2
1 5 3
Initially the number is 152. After incrementing it by 1, the number becomes 153.
2
9 9
1 0 0
Initially the number is 9. After incrementing it by 1, the number becomes 100. Please note that there were 2 nodes in the initial linked list, but there are three nodes in the sum linked list.
The expected time complexity is O('n').
1 <= 'n' <= 10^5
0 <= Node in linked list <= 9
There are no leading zeroes in the number.
Time Limit: 1 sec