zoukankan      html  css  js  c++  java
  • 369. Plus One Linked List

    Given a non-negative number represented as a singly linked list of digits, plus one to the number.

    The digits are stored such that the most significant digit is at the head of the list.

    Example:

    Input:
    1->2->3
    
    Output:
    1->2->4

    ListNode* plusOne(ListNode* head) {
            ListNode *l1 = reverse(head);
            ListNode* cur = l1, *nh = NULL;
            int c = 1;
            while (cur != NULL) {
                cur->val += c;
                c = cur->val / 10;
                cur->val %= 10;
                cur = cur->next;
            }
            l1 = reverse(l1);
            
            if (c != 0) {
                nh = new ListNode(c);
                nh->next = l1;
                l1 = nh;
            }
            return l1;
        }
        
        ListNode* reverse(ListNode* head) {
            ListNode* prev = NULL;
            ListNode* cur = head;
            ListNode* nxt = NULL;
            while (cur != NULL) {
                nxt = cur->next;
                cur->next = prev;
                prev = cur;
                cur = nxt;
            }
            return prev;
        }
    public class Solution {
    // two pointer
        public ListNode plusOne(ListNode head) {
            ListNode dummy = new ListNode(0);
            dummy.next = head;
            ListNode i = dummy;
            ListNode j = dummy;
    
            while (j.next != null) {
                j = j.next;
                if (j.val != 9) {
                    i = j;
                }
            }
            // i = index of last non-9 digit
        
            i.val++;
            i = i.next;
            while (i != null) {
                i.val = 0;
                i = i.next;
            }
            
            if (dummy.val == 0) return dummy.next;
            return dummy;
        }
    }
  • 相关阅读:
    《不懂说话你怎么带团队》读书笔记
    Java内存模型与指令重排
    线程的基本操作
    Spring MVC核心技术
    Spring MVC注解式开发
    Spring MVC执行流程
    大厂技术博客汇总
    内嵌tomcat启动速度慢
    Java 对IP请求进行限流.
    Java过滤XSS脚本, 可通过Appscan扫描
  • 原文地址:https://www.cnblogs.com/fripside/p/6082003.html
Copyright © 2011-2022 走看看