<LinkedList> 369

主宰稳场 提交于 2019-12-10 12:25:00

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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!