首页 > 其他分享 >两数相加

两数相加

时间:2023-11-06 19:47:14浏览次数:27  
标签:set ListNode val 相加 next l2 l1

 

 

 题目理解:这题目的意思是传入这个方法里的是,两个逆序的链表,而题目给出的示例,只是输入的值,则运算的方法里返回值也是逆序的就好。

Definition for singly-linked list.   struct ListNode {       int val;       ListNode *next;       ListNode() : val(0), next(nullptr) {}       ListNode(int x) : val(x), next(nullptr) {}       ListNode(int x, ListNode *next) : val(x), next(next) {}  };

 ListNode() : val(0), next(nullptr) {}

意思

ListNode(){

         val =0;

        next=nullptr;

}

lass Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *p = l1;
        ListNode *q = l2;
        int add_set = 0;
        while (l1 && l2) {
            int sum = l1->val + l2->val + add_set;
            if (sum >= 10) {
                add_set = 1;
                l1->val = sum % 10;
            } else {
                add_set = 0;
                l1->val = sum;
            }
            if (l1->next && l2->next) {
                l1 = l1->next;
                l2 = l2->next;
            } else {
                break;
            }
        }
        if (!l1->next) {
            l1->next = l2->next;//由于l1为空,所以退出了上面的循环,将l2->next接到l1后面
        }
        while (add_set) {
            if (!l1->next) {//l2后面也没值了
                l1->next = new ListNode(1);//由于进位还为1,所以初始化时,将该节点加上进位的值
                add_set = 0;
            } else {
                l1 = l1->next;//l2->next不为空
                int sum = l1->val + add_set;
                if (sum >= 10) {
                    add_set = 1;
                    l1->val = sum % 10;
                } else {
                    add_set = 0;
                    l1->val = sum;
                }
            }
        }
        return p;//返回的是默认的逆序
    }
};

  

标签:set,ListNode,val,相加,next,l2,l1
From: https://www.cnblogs.com/wonder-question/p/17813532.html

相关文章

  • LeetCode每日算法2—两数相加
    题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。示例输入:(2......
  • python---数列内元素正倒相加实例
    a=list([1,21,5,3,1,23])b=list([7,4,6,3,2,1])x=int(input("请输入想从第几个数开始:"))y=int(input("请输入想到第几个数结束:"))c=[0,0,0,0,0,0]m=input("想要正着加吗?(T/F)")foriinrange(x-1,y):ifm=="T":c=a[i]+b[i]......
  • 面试必刷TOP101:11、链表相加(二)
    一、题目二、题解反转链表:publicListNodeaddInList(ListNodehead1,ListNodehead2){//进行判空处理if(head1==null)returnhead2;if(head2==null){returnhead1;}//反转h1链表head1......
  • LeetCode 454.四数相加 II
    题目描述给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0描述第一次提交的代码importjava.util.Map;importjava.util.HashMap;classSol......
  • #yyds干货盘点# LeetCode程序员面试金典:四数相加 II
    1.简述:给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i,j,k,l) 能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0 示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4=[0,2]输出:2......
  • 解决两个数相加,减,乘,除精度丢失问题
    /***解决两个数相加精度丢失问题*@parama*@paramb*@returns{Number}*/functionfloatAdd(a,b){varc,d,e;if(undefined==a||null==a||""==a||isNaN(a)){a=0;}if(undefined==b||null==b||""==b||isNaN(b)){b=0;}try......
  • 大数相加
    介绍:输入两个数字,输出它们相加之后的结果。约定:输入数据共两行。第一行为一个整数a,第二行为一个整数b。输出数据共一行一个数。为a和b相加之后的结果。请尝试使用小学学过的竖式加法进行计算。将输入数据按照字符串输入后拆成一个一个的数字,然后逐位相加并求进位。输入样例127......
  • R语言广义相加(加性)模型(GAMs)与光滑函数可视化|附代码数据
    原文链接:http://tecdat.cn/?p=23509 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于GAMs的研究报告,包括一些图形和统计输出。我们在研究工作中使用广义加性模型(GAMs)。mgcv软件包是一套优秀的软件,可以为非常大的数据集指定、拟合和可视化GAMs。这篇文章介绍一下广义加......
  • 随想录Day7|454. 四数相加Ⅱ、383. 赎金信、15. 三数之和、18. 四数之和
    随想录Day7|454.四数相加Ⅱ、383.赎金信、15.三数之和、18.四数之和 454.四数相加Ⅱ文章&视频讲解给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+......
  • R语言用普通最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类|附代码数
    原文链接:http://tecdat.cn/?p=21379 原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于回归的研究报告,包括一些图形和统计输出。本文我们对逻辑回归和样条曲线进行介绍。logistic回归基于以下假设:给定协变量x,Y具有伯努利分布,  目的是估计参数β。回想一下,针对该......