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

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

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

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

    示例:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-two-numbers
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    C++::::

    /**
    * 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*

    // }
    // };


    class Solution {
    public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
    ListNode* result= new ListNode(0);
    ListNode* tmp=result;
    int sum=0,sum1=0,sum2=0;
    int num1=1,num2=1;
    while(l1||l2)
    {
    if(l1!=NULL)
    {
    sum1+=(l1->val)*num1;
    num1*=10;
    l1=l1->next;
    }
    if(l2!=NULL)
    {
    sum2+=(l2->val)*num2;
    num2*=10;
    l2=l2->next;
    }
    sum=sum1+sum2;
    if(sum!=0)
    {
    tmp->next= new ListNode(sum%10);
    sum/=10;
    tmp=tmp->next;
    }
    }
    if(sum)
    {
    tmp->next = new ListNode(1);
    }
    return result->next;
    }
    };

  • 相关阅读:
    15 反转链表
    八大排序算法总结(2)
    八大排序算法总结(1)
    22从上往下打印二叉树
    19顺时针打印矩阵
    20包含min函数的栈
    SpringMVC-Mybatis整合和注解开发
    优雅的代码之选择不同支付方式
    利用freemarker+SAX解析xml的方式对excel文件字段校验
    pl/sql编程语言
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/11415309.html
Copyright © 2011-2022 走看看