当前位置: 首页 > news >正文

两数相加 LeetCode热题100

题目

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

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

思路

建立链表l3,同时遍历两个链表,对每个节点的数相加,如果一个链表遍历完,停止遍历让它节点代表的数置为0,直到两个数都遍历完。设置一个进位标记,当链表遍历结束但进位标记不为0,则表示多出一位进位,再创立一个节点接受进位。

代码

/*** 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 *x1=l1,*x2=l2,*l3,*pre,*last;int sum,carry=0,a,b;l3=new ListNode(0);pre=l3;last=NULL;while(x1||x2){if(x1==NULL){a=0;}else{a=x1->val;}if(x2==NULL){b=0;}else{b=x2->val;}sum=a+b+carry;carry=sum/10;if(last!=NULL){pre=new ListNode(0);pre->val=sum%10;last->next=pre;}else{pre->val=sum%10;}last=pre;if(x1!=NULL){x1=x1->next;}if(x2!=NULL){x2=x2->next;}}if(carry>0){pre=new ListNode(carry);last->next=pre;}return l3;}
};
http://www.lryc.cn/news/112233.html

相关文章:

  • Python基础 P2数字类型与优先级进阶练习
  • CAPL通过继电器实现CAN容错性自动化测试
  • elasticsearch 配置用户名和密码
  • 侯捷 C++面向对象编程笔记——9 复合 委托
  • 状态模式——对象状态及其转换
  • Linux一阶段复习
  • 宝塔Linux面板怎么升级?升级命令及失败解决方法
  • 前端面试的性能优化部分(6)每天10个小知识点
  • 2023年 Java 面试八股文(20w字)
  • 银河麒麟服务器ky10-server在线一键安装docker
  • spring boot中web容器配置
  • DNSlog注入(利用DNSlog平台将SQL盲注变成回显注入)
  • vim学习笔记(致敬vim作者)
  • 力扣 -- 139. 单词拆分
  • 百度秋招攻略,百度网申笔试面试详解
  • nohup Java -jar 生成的nohup.out 文件一直增加,如何处理
  • 静态页面与动态页面的区别及部署jpress应用
  • 华为数通HCIA-华为VRP系统基础
  • 基于Azure OpenAI Service 的知识库搭建实验⼿册
  • 第七节--结构体
  • Docker学习(二十四)报错速查手册
  • 一种SpringBoot下Scheduler定时任务优雅退出方案
  • DNS部署与安全详解(上)
  • 【51单片机】晨启科技,酷黑版,音乐播放器
  • 基于SPSSPRO实现层次分析法(AHP)
  • Spring Test中使用MockMvc进行上传文件单元测试时,报NullPointerException
  • HTTP常用状态码及其含义
  • FFmpeg中AVIOContext的使用
  • 【react】react中BrowserRouter和HashRouter的区别:
  • 机器学习常用Python库安装