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

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public ListNode plusOne(ListNode head) {
            if(head == null) return head;
            ListNode l = new ListNode(0);
            ListNode dummy = l;
            ListNode reHead = reverseList(head);
            int carry = 1;
            int digit = 0;
            ListNode cur = reHead;
            while(cur != null || carry != 0){
                int index = (cur == null)?  0 : cur.val ;
                digit = (index + carry) % 10;
                carry = (index + carry) / 10;
                l.next = new ListNode(digit);
                l = l.next;
                if(cur != null)
                    cur = cur.next;
            }
            return reverseList(dummy.next);
        }
        public ListNode reverseList(ListNode head){
            if(head == null || head.next == null) return head;
            ListNode dummy = new ListNode(0);
            dummy.next = head;
            ListNode cur = head.next;
            while(cur != null){
                head.next = cur.next;
                cur.next = dummy.next;
                dummy.next = cur;
                cur = head.next;
            }
            return dummy.next;
        }
    }
  • 相关阅读:
    SPF(poj 1523) 割点入门
    从一个例子讲解拷贝构造函数与return
    还是引用
    引用的实质
    const
    三目运算符
    关于C语言链表的学习
    CS2013调试DLL
    fread与fwrite的自我理解
    可见字符与不可见字符
  • 原文地址:https://www.cnblogs.com/joannacode/p/6128383.html
Copyright © 2011-2022 走看看