前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode2两数之和

leetcode2两数之和

原创
作者头像
用户11062199
发布2024-06-19 13:35:58
610
发布2024-06-19 13:35:58

LC2

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

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

代码语言:javascript
复制
 输入:l1 = [2,4,3], l2 = [5,6,4]
 输出:[7,0,8]
 解释:342 + 465 = 807.
代码语言:javascript
复制
 /**
  * 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) {}
  * };
  */
 class Solution {
 public:
     ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
         ListNode*dummy=new ListNode();
         ListNode*cur=dummy;//用dummy作哨兵节点head=dummy->next
         int carry=0;
         while(l1||l2||carry){
             carry+=(l1?l1->val:0)+(l2?l2->val:0);//(l1?l1->val:0)当l1=nullptr很好的避免了空节点的干扰
             cur=cur->next=new ListNode(carry%10);//精简代码相当于
             //cur=cur->next;cur=new ListNode(carry%10);
             carry/=10;
             if(l1)l1=l1->next;
             if(l2)l2=l2->next;
         }
         return dummy->next;
     }
 };

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LC2
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档