zoukankan      html  css  js  c++  java
  • [LeetCode] 2


    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) {
        if (l1 == NULL) return l2;
        if (l2 == NULL) return l1;

        ListNode *head = new ListNode(0);
        ListNode *sum = head;

        while(l1 || l2) {
          if(l1 == NULL){
            sum->next = l2;
            break;
          }
          if(l2 == NULL){
            sum->next = l1;
            break;
          }
          ListNode* res = new ListNode(l1->val + l2->val + sum->val /10);
          sum->val %= 10;
          sum->next = res;
          sum = res;
          l1 = l1->next;
          l2 = l2->next;
        }
        while(sum->next) {
          sum->next->val += sum->val/10;
          sum->val %= 10;
          sum = sum->next;
        }

        ListNode *p = head;
        head = head->next;
        if (sum->val >= 10) {
          p->val = sum->val /10;
          sum->val %= 10;
          sum->next = p;
          p->next = NULL;
        }
        else {
          delete p;
        }
        return head;
      }
    };

  • 相关阅读:
    蓝桥杯 全球变暖(dfs)
    Bzoj3196 Tyvj 1730 二逼平衡树
    Bzoj3110 [Zjoi2013]K大数查询
    Bzoj4004 [JLOI2015]装备购买
    Bzoj2115 [Wc2011] Xor
    Bzoj1257 [CQOI2007]余数之和sum
    HDU1724 Ellipse
    Bzoj2178 圆的面积并
    SPOJ CIRU The area of the union of circles
    CodeForces 232E.Quick Tortoise
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4765872.html
Copyright © 2011-2022 走看看