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的主题…

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这样一组数字序…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

图Graph--最短路径算法(Shortest Path Algorithm)

文章目录1. 算法解析BFS,DFS 这两种算法主要是针对无权图的搜索算法。针对有权图,图中的每条边都有权重,如何计算两点之间的最短路径(经过的边的权重和最小)呢?像Google地图、百度地图、高德地图这样的地图软件&#x…

BAT架构师进阶:大型网站架构书籍推荐

“ 书籍推荐分为如下: 大型网站架构系列 分布式系统系列 BAT技术系列 架构设计系列 一:大型网站架构系列 第一本:《大型网站技术架构:核心原理与案例分析》 这本书主要从大型网站架构的特点,架构目标&#xff08…

FLAT:中文NER屠榜之作

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

Tensorflow实现LSTM详解

关于什么是 LSTM 我就不详细阐述了,吴恩达老师视频课里面讲的很好,我大概记录了课上的内容在吴恩达《序列模型》笔记一,网上也有很多写的好的解释,比如:LSTM入门、理解LSTM网络 然而,理解挺简单&#xff0…

论文浅尝 | 一个模型解决所有问题:实体和事件的神经联合模型

笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生。论文链接:https://arxiv.org/pdf/1812.00195.pdf发表会议:AAAI 2019摘要 近来,针对事件抽取的工作大都集中在预测事件的triggers和arguments r…

AutoPep8-----Pycharm自动排版工具

查找pycharm中的external tool的步骤: https://jingyan.baidu.com/article/84b4f565bd39a060f6da3211.html 今天从 PyCharm 入手,写一些可以明显改善开发效率的使用技巧,一旦学会,受用一生。以下代码演示是在 Mac 环境下&#xf…