首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LeetCode题解-2.两数相加C语言

LeetCode题解-2.两数相加C语言) 1.问题描述 给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。...请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...:[0] 示例 3: 输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1] 2.解题思路 在逆序的列表中,每一项直接相加就是该位的值...对于长度短的数字进行补0,然后相加,将处理后的每一项插入结果链表。...1、创建结果链表 2、遍历给定的两个链表 3、取结点值进行相加,并记录进位值carry,注意短数补0 4、遍历结束后,判断进位是否大于0,是则插入结果列表 在实现该题过程中,借鉴了官方的题解,最终按着自己的理解写出该题

29700
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言每日一题(37)两数相加

    力扣网 2 两数相加 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。...请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...思路分析 最基本的思路,就是将俩链表转正过来,相加后再进行逆序,实现是可以实现,但时间复杂度太高了,此外这里相加还涉及到进位的问题,这样做会很麻烦。...换一种思路,我们直接在现成的两个链表上操作,可以看到,相加后逆过来的值刚好就是对应的两个结点的相加,那我们可以直接遍历两个链表,将对应的值相加,并存放到新的结点里。...需要注意的事项: 1.这里会涉及到进位的问题,我们可以将相加后的值/10得到进位值(大于10的进位值为1,小于10的进位值为0)每次相加时加上进位值即可。

    12710

    c语言:输入任意10个正整数,按照升序排序输出:(冒泡算法)

    C语言永远不会过时 其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手。C不会过时的,尤其是在unix、linux操作平台上,学好C是必须的。...CC++在很多方面也是兼容的,cc++的基础。 再者c能从很大的程度上帮你了解计算机的发展史,数据结构等方面的知识,很多软件、甚至操作系统中的很大部分是用c来实现的。...还有一些电器芯片的程序,比如电冰箱内制冷系统……可以说用c可以解决一切可能遇到的问题,关键是你要能精通它。...所以放开手脚去大胆的学吧,c永远不会过时 小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。...裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 源代码: #include void main() { int a[10]; int i,m,n; printf("请输入10个正整数

    11.4K01

    C++经典算法题-超长整数运算(大数运算)

    16.Algorithm Gossip: 超长整数运算(大数运算) 说明 基于记忆体的有效运用,程式语言中规定了各种不同的资料型态,也因此变数所可以表达的最大整数受到限制,例如123456789123456789...这样的 整数就不可能储存在long变数中(例如C/C++等),我们称这为long数,这边翻为超长整数(避免与资料型态的长整数翻译混淆),或俗称大数运算。...解法 一个变数无法表示超长整数,则就使用多个变数,当然这使用阵列最为方便,假设程式语言的最大资料型态可以储存至65535的数好了,为了计算方便及符合使用十进位制的习惯,让每一个阵列元素可以储存四个位数,...c[i] = a[i] + b[i] + carry; if(c[i] < 10000) carry = 0; else { // 进位...b[i] - borrow; if(c[i] >= 0) borrow = 0; else { // 借位 c[i] = c[i] + 10000

    35640

    【模板小程序】十进制大数相加正整数版本+整数版本【正负0】),包含合法性检查

    为适应于不同用途,将大数算法写成了两个版本,分别为只处理正整数的版本和包含负数处理的版本,可根据需要选用。...版本1:只能处理正整数 1 //大数相加(十进制正整数),用string处理 2 #include 3 #include 4 #include <algorithm...、0、负整数(STL编码风格) 1 /* 2 本程序说明: 3 4 大数相加(十进制正负整数),用string处理 5 6 时间复杂度:O(k),k为字符串长度(取大者)...则插入'1' 126 result.insert(result.begin(),'1'); 127 128 return result; 129 } 130 131 //大数相加入口...参考资料来源说明: 1、正整数版本,借鉴了牛客网“赞一下”用户的思想,在此感谢,原题目参见https://www.nowcoder.com/questionTerminal/5821836e0ec140c1aa29510fd05f45fc

    40930

    【模板小程序】十进制大数相加正整数版本+整数版本【正负0】),包含合法性检查

    为适应于不同用途,将大数算法写成了两个版本,分别为只处理正整数的版本和包含负数处理的版本,可根据需要选用。...版本1:只能处理正整数 1 //大数相加(十进制正整数),用string处理 2 #include 3 #include 4 #include <algorithm...、0、负整数(STL编码风格) 1 /* 2 本程序说明: 3 4 大数相加(十进制正负整数),用string处理 5 6 时间复杂度:O(k),k为字符串长度(取大者)...则插入'1' 126 result.insert(result.begin(),'1'); 127 128 return result; 129 } 130 131 //大数相加入口...参考资料来源说明: 1、正整数版本,借鉴了牛客网“赞一下”用户的思想,在此感谢,原题目参见https://www.nowcoder.com/questionTerminal/5821836e0ec140c1aa29510fd05f45fc

    40510

    C语言】初识C语言(常见的C语言概念)

    一.C语言是什么?...语言大致可以分为自然语言和计算机语言,自然语言就是人与人日常交流的语言,如汉语、英语、日语等等,计算机语言又可以分为机器语言、汇编语言、高级语言C语言就是一个高级语言 机器语言:就是由二进制01组合起来的计算机可以直接识别的程序语言是一种面向机器的语言...,比起低级语言易懂易学,可移植性好,编程效率高,但是执行效率没有低级语言高,需要经过编译或解释,C语言就是采用编译的一种高级语言 二.为什么选择C语言 C语言常年霸榜各类高级语言前三,属于基础必学的语言...,其功能强大,而且许多语言都很相似,如果学好C语言,对学习其他语言也有很大帮助 三.编译器的选择 C语言是一门编译型的语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令 常见的编译器有:msvc...+文件,这里没有C文件选项,因为C++和C基本不分家,将后缀名.cpp改为.c就可以了,创建好后就可以开始写我们的第一个C语言程序了 注意:其中.c的文件叫源文件,.h的文件叫头文件(head),后面会慢慢讲到

    9510
    领券