369. Plus One Linked List
1.第1次while: 从前往后找到第一个不是9的位,记录。
2.第2次while: 此位+1,后面的所有值设为0(因为后面的位都是9)。
返回时注意可能所有位数为9,需要在最前面添加一位,如果dummy.val == 1,则返回dummy位。 时间O(N), 空间O(1).
class Solution { public ListNode plusOne(ListNode head) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode lastNotNine = dummy, node = head; while(node != null){ if(node.val != 9){ lastNotNine = node; } node = node.next; } lastNotNine.val++; node = lastNotNine.next; while(node != null){ node.val = 0; node = node.next; } return dummy.val == 1 ? dummy : dummy.next; } }
原文:https://www.cnblogs.com/Afei-1123/p/12015864.html