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;
        }
    }
  • 相关阅读:
    Debug和Release区别
    C语言程序_管理系统
    读书的学问
    御姐的含义
    进制的英文书写
    CHM文件无法打开的解决方法
    819代码
    点击链接不跳转或刷新
    MS SqlServer 随机查询并随机排序
    Html背景图
  • 原文地址:https://www.cnblogs.com/joannacode/p/6128383.html
Copyright © 2011-2022 走看看