LeetCode 2. 两数相加(单链表反转)

题目链接:https://leetcode-cn.com/problems/add-two-numbers/

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

考查单链表反转

在这里插入图片描述

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution 
{
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int sum, one = 0;ListNode *nextNode = NULL;while(l1 != NULL || l2 != NULL){if(l1 != NULL && l2 != NULL){sum = l1->val + l2->val + one;one = sum/10;ListNode *newNode = new ListNode(sum%10);newNode->next = nextNode;nextNode = newNode;l1 = l1->next;l2 = l2->next;}else if(l1 != NULL && l2 == NULL){sum = l1->val + one;one = sum/10;ListNode *newNode = new ListNode(sum%10);newNode->next = nextNode;nextNode = newNode;l1 = l1->next;}else{sum = l2->val + one;one = sum/10;ListNode *newNode = new ListNode(sum%10);newNode->next = nextNode;nextNode = newNode;l2 = l2->next;}}if(one != 0){ListNode *newNode = new ListNode(1);newNode->next = nextNode;nextNode = newNode;}return reverseList(nextNode);}ListNode* reverseList(ListNode *cur){if(cur->next == NULL)return cur;ListNode *prevNode = NULL, *nextNode = cur->next;while(cur != NULL && cur->next != NULL){cur->next = prevNode;prevNode = cur;cur = nextNode;nextNode = nextNode->next;}cur->next = prevNode;return cur;//反转链表后的新的头结点}
};
  • 直接对每位进行相加
class Solution {	// 2020.10.4
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int carry = 0, sum;ListNode* newhead = NULL, *prev = NULL;while(l1 || l2 || carry){sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + carry;ListNode* node = new ListNode(sum%10);carry = sum/10;if(l1)l1 = l1->next;if(l2)l2 = l2->next;if(!newhead){newhead = node;prev = node;}else{prev->next = node;prev = node;}}return newhead;}
};

40 ms 69.8 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报名 | 全国知识图谱与语义计算大会(CCKS 2019)评测任务发布

全国知识图谱与语义计算大会是由中国中文信息学会语言与知识计算专委会定期举办的全国年度学术会议。CCKS 2018吸引了来自学术界和工业界的超800人参加。2019 年全国知识图谱和语义计算大会(www.ccks2019.cn) 将于2019年8月24日至8月27日在杭州召开,CCKS 2019的主题…

一篇文章学习Python中的多进程

基本知识:一、什么是多进程 Multiprocessing二、添加多进程 Process三、存储进程输出 Queue四、效率对比 threading & multiprocessing五、进程池 Pool六、共享内存 shared memory七、进程锁 Lock一、什么是多进程 Multiprocessing 支持并行运算,充…

UML是什么?UML常用图以及建模工具有哪些?

“ 在做项目设计方案的时候,理解为需求后,我们都会做技术设计方案,这个时候就需要用到UML建模,涉及到UML常用图形以及工具画图,以下我会详细介绍UML图形和我个人推荐的UML建模工具。 UML即Unified Model Language&am…

炼丹必备!推荐一个超级好用的机器学习云平台

矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验,和高性价比的自建GPU集群资源。高性价比矩池云拥有很高的性价比,其的计费方式主要分为按时租与按周/月租。按时租用采用的是分钟级的实时计费模式,满足了…

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。 BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾回收算法 3.JVM垃圾回收器 4.JVM参数详解 5.JVM性能调优 JV…

论文浅尝 | 基于平行新闻的Bootstrapping关系抽取

笔记整理:吴锐,东南大学大四本科生,研究方向为自然语言处理。Citation:Michael Glass, K. B. . (2012). Bootstrapping relation extraction using parallel news articles. Retrieved from https://pdfs.semanticscholar.org/bfa…

动态规划应用--最长递增子序列 LeetCode 300

文章目录1. 问题描述2. 解题思路2.1 动态规划2.2 二分查找1. 问题描述 有一个数字序列包含n个不同的数字,如何求出这个序列中的最长递增子序列长度?比如2,9,3,6,5,1,7这样一组数字序…

常见的面试题整理 -python

常见的面试题整理 在这里插入代码片 #二分查找def binarySearch(alist, item):first0;lastlen(alist)-1;while first < last:mid(firstlast)/2;print(mid)if alist[mid]>item:lastmid-1;elif alist[mid]<item:firstmid1return -1test[0,1,2,8,13,17,19,9,0]print(bin…

Python中的全局变量

一、全局变量的定义与调用 在主进程中定义的变量属于全局变量&#xff0c;如下面的变量a、b、c&#xff0c;都是全局变量。 如果只是调用全局变量&#xff0c;不对其进行修改&#xff0c;可直接调用。 a 1 b [2,2]def f1():print(a)print(b)print(c) if __name__ __mai…

论文浅尝 | 5 篇顶会论文带你了解知识图谱最新研究进展

本文转载自公众号&#xff1a;PaperWeekly。精选 5 篇来自 ICLR 2019、WSDM 2019、EMNLP 2018、CIKM 2018和IJCAI 2018 的知识图谱相关工作&#xff0c;带你快速了解知识图谱领域最新研究进展。WSDM 2019■ 论文解读 | 张文&#xff0c;浙江大学在读博士&#xff0c;研究方向为…

LeetCode 53. 最大子序和(动态规划)

文章目录1. 题目描述2. 解题2.1 暴力求解2.2 动态规划1. 题目描述 题目链接&#xff1a;https://leetcode-cn.com/problems/maximum-subarray/ 《剑指Offer》同题&#xff1a;面试题42. 连续子数组的最大和 给定一个整数数组 nums &#xff0c;找到一个具有最大和的连续子数组…

java程序员的发展之路和职业规划

在互联网做技术的朋友&#xff0c;往往没有足够的重视&#xff0c;职业规划其实一点都不虚&#xff0c;而是一件非常实在的事情&#xff0c;如果你不是每次碰墙再反思职业规划&#xff0c;而是提前3年左右作出下一步的规划&#xff0c;你早已经走出了一条属于自己的路。 以下是…

Python多进程中多参数问题

要注意的一点是&#xff1a;传递给进程的参数必须是可序列化的&#xff0c;常见的数据类型都是可序列化的&#xff0c;自定义的类一般是不可序列化的&#xff0c;&#xff08;在java中有将自定类写为可序列化的方式&#xff0c;不知道python中有没有&#xff0c;懒得查了&#…

机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现

网址&#xff1a;https://github.com/NLP-LOVE/ML-NLP 此项目是机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现&#xff0c;也是作为一个算法工程师必会的理论基础知识。 http://mantchs.com/ 此项目是机器学习、NLP面试中常考到的…

图Graph--拓扑排序(Topological Sorting)

文章目录1. 拓扑排序2. 算法实现2.1 Kahn算法2.2 DFS算法2.3 时间复杂度3. 应用4. 类似题目练习一个项目往往会包含很多代码源文件。编译器在编译整个项目时&#xff0c;需按照依赖关系&#xff0c;依次编译每个源文件。比如&#xff0c;A.cpp依赖B.cpp&#xff0c;那在编译时&…

SIGIR20最佳论文:通往公平、公正的Learning to Rank!

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 机智的叉烧编 | 兔子酱大家好&#xff0c;我是叉烧。感谢卖萌屋再次给我机会在这里分享~SIGIR2020 的 best paper 终于出炉&#xff0c;这次获奖论文是 Controlling Fairness and Bias in Dynamic Learn…

论文浅尝 | 基于属性嵌入的知识图谱间实体对齐方法

笔记整理&#xff1a;张清恒&#xff0c;南京大学计算机科学与技术系&#xff0c;硕士研究生。论文链接&#xff1a;https://people.eng.unimelb.edu.au/jianzhongq/papers/AAAI2019_EntityAlignment.pdf发表会议&#xff1a;AAAI 2019摘要近来&#xff0c;针对跨知识图谱&…

一篇文章了解架构师能力模型

每一个技术人都有着一个架构师的梦&#xff0c;希望自己有朝一日能登上技术之巅&#xff0c;以下结合我自己13年的从业经验&#xff0c;分别从架构师进阶之路、架构师能力模型&#xff08;这里是亮点&#xff09;、架构师技能树、架构师业务技能树谈起&#xff0c;完整的剖析一…

python引用自己的文件的一切问题

目录关于引入和使用方法方式一&#xff1a;调用另一个文件的变量和函数方式二&#xff1a;调用另一个文件的类关于执行顺序关于引入和使用方法 方式一&#xff1a;调用另一个文件的变量和函数 main.py from batch import *print("在main调用batch的变量NUM&#xff1a;…

首篇严肃的“BERT学”研究,40+论文对比,解读 BERT 工作原理

BERT解读&#xff08;论文 TensorFlow源码&#xff09;&#xff1a;https://blog.csdn.net/Magical_Bubble/article/details/89514057?depth_1- 解读ALBERT&#xff1a; https://blog.csdn.net/weixin_37947156/article/details/101529943 一文揭开ALBERT的神秘面纱&#…