zoukankan      html  css  js  c++  java
  • 两数相加

    两数相加

    • description

      给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

      如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

      您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出:7 -> 0 -> 8
    原因:342 + 465 = 807
    

    题型为链表基本操作

    • solution
    /**
     * 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* p1 = l1; ListNode* p2 = l2;
            if ((l1 == nullptr) && (l2 == nullptr)) return nullptr;
            if (l1 == nullptr) return l2;
            if (l2 == nullptr) return l1;
    
            ListNode* pre = nullptr;
            ListNode* head = l1;  // new list head
            int add = 0;
            while(l1 && l2) {
              int n = l1->val + l2->val + add;
              add = 0;
              if (10 <= n) {
                add = n / 10;
                n = n % 10;
              }
              l1->val = n;
              pre = l1;
              l1 = l1->next; l2 = l2->next;
            }
    
            if (l2 != nullptr) pre->next = l2;
            ListNode *p = pre->next;
            if (add) {
              while(p) {
                int n = p->val + add;
                add = 0;
                if (10 <= n) {
                  add = n / 10;
                  n = n % 10;
                }
                p->val = n;
                pre = p;
                p = p->next;
              }
              if (add) {
                pre->next = new ListNode(add);
              }
            } 
            return head;
        }
    };
    

    (https://leetcode-cn.com/problems/add-two-numbers)

  • 相关阅读:
    mysql、mongodb、redis区别
    Redis面试题
    【开发提效】开发提效技巧
    【代码规范】16条军规
    mysql数据库连接字符串
    mysql数据库连接字符串
    好用的api接口
    node + express + vue
    跨源资源共享(CORS)
    fehelper
  • 原文地址:https://www.cnblogs.com/codemeta-2020/p/12306949.html
Copyright © 2011-2022 走看看