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

今天刷的是第二题,当初因为没学链表,一直没刷。这个暑假,把数据结构稍微学了下,再回头看这题。刚开始看的时候,还是感觉有些生疏,毕竟数据结构是暑假自学的,不太牢固。

下面是力扣的官方题解。我在官方题解上面加了注释!!

/*** 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 *head = nullptr, *tail = nullptr;//carry表示进位int carry = 0;//只要l1或者l2不为空就进行相加while (l1 || l2) {//如果出现链表的一端已经没有数了,而另一端还有数。比如123+56;循环第三次时n1=1;n2=0;int n1 = l1 ? l1->val: 0;int n2 = l2 ? l2->val: 0;int sum = n1 + n2 + carry;//头结点为空if (!head) {head = tail = new ListNode(sum % 10);}//头结点不为空,不断向后扩展结点else {tail->next = new ListNode(sum % 10);tail = tail->next;}//下一次进位的数carry = sum / 10;//l1不为空,l1指向下一次的指针if (l1) {l1 = l1->next;}//l2不为空,L2指向下一次的指针if (l2) {l2 = l2->next;}}//和数比两个加数多出了1位;比如100+900=1000;//此时carry就是1;if (carry > 0) {tail->next = new ListNode(carry);}//返回头指针return head;}
};

我接着自己又写了一遍代码。(用自己的方法,时间和空间复杂度比官方解答更好哦)不过刚写的时候,出了点错误。我到淘宝上买了个力扣会员,用他们的调试器调试了一下,把错误改正了。下面是我的代码。

/*** 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*head=nullptr;ListNode*tail=nullptr;
head=new ListNode((l1->val+l2->val)%10);
tail=head;
int carry=(l1->val+l2->val)/10;
l1=l1->next;l2=l2->next;while(l1||l2){int n1=l1?l1->val:0;int n2=l2?l2->val:0;int sum=n1+n2+carry;tail->next=new ListNode(sum%10);tail=tail->next;carry=sum/10;if(l1)l1=l1->next;if(l2)l2=l2->next;
}
if(carry){tail->next=new ListNode(carry);tail=tail->next;
}
return head;}
};

我第一次写犯的错误 

第二次就好了哦

已知乾坤大,犹怜草木青。这里北风,星河辽阔,一路相伴。

夜深人静刷力扣(2)相关推荐

  1. 【关于为什么要刷力扣的思考】记第二次周赛AK

    前言 从上次AK周赛的一月底,磕磕绊绊到五月初,总共经历了20多场的周赛 在这20场周赛中,四题:三题:两题:一题 = 2:12:8:1 总体来说应该还是在两到三题中间徘徊 但很多时候做出的两题,并非 ...

  2. VS Code刷力扣LeetCode方法

    VS Code刷力扣LeetCode方法 一.LeetCode扩展安装 二.Node.js安装 三.账号登录 3.1 选择 力扣中国版 3.2 选择 Cookies方式登录 3.3 Cookies获取 ...

  3. 在 vscode 上刷力扣 Leetcode 可以这样来

    背景 神奇的算法网站 LeetCode 值得驻留,网页版似乎不太方便,作为习惯于在编译器上敲代码的你,如何 vscode 上优雅的刷力扣 Leetcode,在本地配置,记录下来方便备查. 环境前置:电 ...

  4. 程序员面试需要刷力扣算法题吗

    这里写目录标题 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一些特征 1.2. 为什么要考查算法 1.3. 目前面试主要考查 3 类 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一 ...

  5. 零基础的我刷力扣一周后,总结了点东西

    一.前言 之前一直想学习数据结构与算法,因为一直听说这个很重要嘛,还有力扣这个网站那也是神交已久啊~~ 但是又不敢接触,因为恐惧嘛,害怕学不会,害怕被吊打~~~~~ 后来遇到了一个大佬,算法大佬,超强 ...

  6. 力扣有没有java_【Java】一篇文章带你玩转用Java刷力扣

    写在前面 我之前一直是以Golang为主语言的,最近开始转Java,包括平时刷题(欢迎来互粉哈:千杉沐雪的力扣)的语言也改为使用Java. 在转语言的过程中,总避免不了要频繁地查基本的语法和一些常见函 ...

  7. 谷歌网页插件实现优雅(bushi)刷力扣

    基本功能已经完成,源码见https://github.com/hahahaMing/Google_LeetCode_extension/tree/master/nativeMessaging 文章目录 ...

  8. C++刷力扣、PAT第一周笔记

    最近,出于巩固复习C++与数据结构.学习高级算法.准备PAT考试的需要,我开始照着网上的刷题教程,在力扣和PAT平台上逐题攻坚.以下是一些收获: [1]map容器的使用 make_pair返回pair ...

  9. ❤️739❤️带新手一起刷力扣 (LeetCode)❤️代码有详细的注释❤️反思总结❤️739. 每日温度

    本文章是❤️力扣 (LeetCode)❤️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个----

  10. Java基础知识总结(刷力扣必备)

    目录 零.前言 0.1Java的输入 0.2 Java的输出 一.数组Array和动态数组ArrayList 1.1有关数组的Array转换和排序 1.2 有关ArrayList的用法.自定义排序 1 ...

最新文章

  1. ICMP Internet控制报文协议(四)
  2. SPI分配传感器的寄存器
  3. Codeforces Round #668 (Div. 2)
  4. SharePoint 2013 开发——其他社交功能
  5. ddd 访问权限_基于DDD的微服务设计和开发实战
  6. YouTube上最火的OpenCV-Python入门视频教程
  7. DHCP通过NAP认证
  8. Tomcat6.0 管理器配置
  9. 【转】你有这么一个人么
  10. java nlpir_1---------java调用NLPIR(ICTCLAS2016)实现分词功能
  11. 1997年考研数学一解析pdf
  12. linux下罗技摄像头采集图片,linux下寻找罗技摄像头快看酷讯版驱动
  13. 【毕业设计】STM32智能药箱系统 - 单片机 嵌入式 物联网
  14. c语言指数公式_用C语言求幂函数和指数函数的方法
  15. 【软考】--软考是一盘散沙?NO
  16. 320、Vue学习笔记26 -【生产环境部署】 2020.04.20
  17. PMP 质量保证与质量控制的区别
  18. 【基础】struct的函数操作
  19. 初识js-charts和E-charts
  20. FKMT--创建凭证模板

热门文章

  1. 三年级计算机帮助我们学本领,三年级作文学本领40
  2. android studio切换工作空间,修复Android Studio损坏的项目工作区设置
  3. 听说程序员普遍缺乏数据结构,惊得我熬了一宿滋味浓郁的数据结构,滋一口回味悠长(建议珍藏)
  4. 用一台笔记本跑ROVIO
  5. RAR压缩包有密码怎么办
  6. VGA显示器屏幕文字模糊(稍有重影)的解决方案
  7. 非线性曲线拟合和多项式曲线拟合
  8. uniapp中使用微信登录app
  9. 【生活】深圳驾考经历
  10. 802.11e规范的服务质量保障机制