<LinkedList> 369

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;
    }
}

猜你喜欢

转载自www.cnblogs.com/Afei-1123/p/12015864.html
今日推荐