• 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;
        }
    }
  • 相关阅读:
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS博客作业02--线性表
    c博客06-结构体&文件
    C博客作业05--2019-指针
    面向对象设计大作业——QQ联系人系统
    DS博客作业05--查找
    DS博客作业04--图
  • 原文地址:https://www.cnblogs.com/joannacode/p/6128383.html
Copyright © 2020-2023  润新知