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