• 2.Add Two Numbers (List)


    You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
            int sum = l1->val + l2->val; 
            int carry = sum/10;
            ListNode* root = new ListNode(sum%10);
            ListNode* current = root;
            
            l1 = l1->next;
            l2 = l2->next;
            while(l1 && l2){
                sum = l1->val + l2->val + carry;
                carry = sum/10;
                current->next = new ListNode(sum%10);
                current = current->next;
                l1 = l1->next;
                l2 = l2->next;
            }
            
            while(l1){
                sum = l1->val+ carry;
                carry = sum/10;
                current->next = new ListNode(sum%10);
                current = current->next; 
                l1 = l1->next;
            }
            
            while(l2){
                sum = l2->val+ carry;
                carry = sum/10;
                current->next = new ListNode(sum%10);
                current = current->next; 
                l2 = l2->next;
            }
            
            if(carry){
                current->next = new ListNode(carry);
            }
            return root;
        }
    };
  • 相关阅读:
    *洛谷P1858 多人背包
    ZOJ3469 Food Delivery
    Hdu5115 Dire Wolf
    Codevs 2765 隐形的翅膀
    Hdu4055 Number String
    Codevs 1300 文件排版
    洛谷 P1412 经营与开发
    Codevs 4357 不等数列
    codevs 3333 高级打字机
    Bzoj 1086: [SCOI2005]王室联邦
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4637094.html
Copyright © 2020-2023  润新知