# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def plusOne(self, head: ListNode) -> ListNode:
i, j = None, head
while j:
if j.val != 9:
i = j
j = j.next
if not i:
new_h = ListNode(1)
new_h.next = head
i = head
head = new_h
else:
i.val += 1
i = i.next
while i:
i.val = 0
i = i.next
return head
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode plusOne(ListNode head) {
Stack<ListNode> stack = new Stack<>();
ListNode dummy = new ListNode(0), node = dummy, lastNotNine = dummy;
dummy.next = head;
while (node.next != null) {
if (node.val != 9) {
lastNotNine = node;
}
node = node.next;
}
if (node.val != 9) {
node.val++;
} else {
lastNotNine.val++;
node = lastNotNine.next;
while (node != null) {
node.val = 0;
node = node.next;
}
}
if (dummy.val != 0) {
return dummy;
} else {
return dummy.next;
}
}
}