zoukankan      html  css  js  c++  java
  • 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;
        }
    };
  • 相关阅读:
    随机生成30道四则运算题目
    《构建之法》阅读笔记01
    第一周学习进度
    个人介绍
    MyBatis(登录)
    MyBatis
    动态网页
    网页基本标签
    Servlet基础
    JSP数据交互
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4637094.html
Copyright © 2011-2022 走看看