zoukankan      html  css  js  c++  java
  • Add Two Numbers

    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){
    
            ListNode* head=new ListNode(-1);
            ListNode* cur = head;
            int carry = 0;
            int val = 0;
            while(l1 && l2){
                val = l1->val + l2->val+carry;
                carry = val / 10;
                val = val % 10;
                cur->next = new ListNode(val);
                cur = cur->next;
                l1 = l1->next;
                l2 = l2->next;
            }
    
            if(l1 || l2){
                ListNode *p = l1? l1 : l2;
                while(p){
                    val = p->val + carry;
                    carry = val / 10;
                    val = val % 10;
                    cur->next = new ListNode(val);
                    cur = cur->next;
                    p= p->next;
                }
            }
    
            if(carry)
                cur->next = new ListNode(carry);
            return head->next;
        }
    };
  • 相关阅读:
    回文字符串问题
    Linux添加nfs共享存储盘
    解读nginx配置
    制作自己的nginx rpm包
    linux编译安装时常见错误解决办法
    redis单机及集群安装
    nginx ssl
    vsftp配置详解
    Linux-文件系统的简单操作
    Linux-Vim编辑器
  • 原文地址:https://www.cnblogs.com/wxquare/p/5928097.html
Copyright © 2011-2022 走看看