2. 两数相加(中等)

  • 题目:
  • 解题思路:
  • 源码:
  • 踩坑点:

题目:

解题思路:

把俩个链表对应位相加,如果大于等于10,对10取余,小于10,直接得到这一位

解题过程存在这样几个问题:
1、进行循环时,俩个链表长度不相等;9876 + 543
2、俩个链表的数相加时,长度大于俩个链表中的任何一个; 9876 + 543 = 10419

源码:

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){struct ListNode* res = (struct ListNode*) calloc (1, sizeof(struct ListNode));struct ListNode* result = res; int a, b, c = 0; while(l1 != NULL || l2 != NULL || c != 0){ if(l1 != NULL){a = l1 -> val;l1 = l1 -> next;}else{a = 0;}if(l2 != NULL){b = l2 -> val;l2 = l2 -> next;}else{b = 0;}if(a + b + c >= 10){result->val = a+b+c-10;c = 1;}else{result->val = a+b+c;c = 0;}if(l1 != NULL || l2 != NULL || c != 0)result -> next = (struct ListNode*) calloc(1, sizeof(struct ListNode));result = result -> next;}return res;
}

踩坑点:

题目本身算法不难,要注意的是采用链式存储,就要考虑到:
1、开辟空间存储结果,那么这个空间要开辟多大
2、如何避免空指针的问题(这个是真的ex到我了)
3、当一个链表已经到了最后但另一个链表还有数据时,如何做到对应位相加。
    9,8,7,6和NULL,5,4,3;9和NULL如何相加

LeetCode:2. 两数相加(中等)相关推荐

  1. 2. 两数相加(中等)

    2. 两数相加(中等) 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一 ...

  2. [链表遍历|模拟] leetcode 2 两数相加

    [链表遍历|模拟] leetcode 2 两数相加 1.题目 题目链接 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果 ...

  3. 20200114:(leetcode)两数相加

    两数相加 题目 主要思路 代码实现 题目 注意点:不以0开头 主要思路 逐个相加即可,注意需要逆序加,注意进位即可: 由于数字是个位数的,因此进位只有可能是0或者1: 注意定义的有参构造器. 代码实现 ...

  4. LeetCode 445. 两数相加 II(链表大数加法)

    1. 题目 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进 ...

  5. LeetCode 2 两数相加

    给定两个非空链表来代表两个非负数,位数按照逆序方式存储,它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 - ...

  6. LeetCode 2 两数相加(链表)

    题目要求: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入 ...

  7. leetcode算法—两数相加 Add Two Numbers

    关注微信公众号:CodingTechWork,一起学习进步. 题目 Add Two Numbers: You are given two non-empty linked lists represen ...

  8. leetcode 2. 两数相加

    难度:中等 频次:72 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. ...

  9. leetcode —— 2. 两数相加 (对于链表更新的细节)

    给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...

最新文章

  1. excel 按数据拆分 xlam_利用EXCEL提升效率之五分钟缩短至五秒批量合并EXCEL批量转换PDF批量上传报关单随附单据___EXCELVBA...
  2. font-family字体总结
  3. 解决Office 2010出现the setup controller has encountered a problem...
  4. C++ 使用静态变量和静态方法统计学生分数和学生个数
  5. pandas分批读取csv文件
  6. android listview 自动循环滚动条,ListView的自动循环滚动显示【原创】
  7. Android升级butterknife,Android组件化开发中使用Butterknife的坑
  8. 手把手教你Python获取全部金融数据
  9. 计算机应用研究潜规则,基于相容矩阵计算的不完备决策系统规则获取算法
  10. Duilib初级控件扩展一例: 具有鼠标滚动消息的OptionUI
  11. [HNOI2012]集合选数 BZOJ2734
  12. 访问数组元素的 3 种方法
  13. 老旧小区安防升级改造有机遇也有难度
  14. c语言程序转python_C语言程序转换为Python语言
  15. 新华linux桌面操作系统3.0
  16. java日文_怎么用java编写个应用程序,让其输出日文表
  17. 亚马逊森林大火----- 我也来评论一下
  18. linux系统修改ip地址教程。
  19. 计组-booth乘法-谈原理和实现
  20. 国家开放大学2021春1174水工钢筋混凝土结构(本)题目

热门文章

  1. apache负载均衡 健康检查_Nginx负载均衡之健康检查
  2. bean json转kotlin_Android--------kotlin插件神器Json直接生成javaBean
  3. NAR再版 | 人类长非编码RNA知识库LncRNAWiki 2.0
  4. linux6.5能安装的firefox,Centos6.5安装firefox
  5. linux无盘工作站互不干扰,Linux环境下无盘工作站的架设和实现二
  6. python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口
  7. python 线性规划问题_一学高数,线代就头疼?让python帮你解决(内含教程)
  8. 自动化构建部署之Jenkins安装【Docker容器】
  9. react更改路由入参_JavaScript基础教程 react router路由传参
  10. 信息安全工程师笔记-综合知识冲刺(四)