2023-07-02 LeetCode每日一题(两数相加)

news/2024/10/17 22:13:58/

2023-07-02每日一题

一、题目编号

2. 两数相加

二、题目链接

点击跳转到题目位置

三、题目描述

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

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

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

提示:

  • 每个链表中的节点数在范围 [1, 100] 内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

四、解题代码

/*** 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) {int carry = 0;ListNode * head1 = l1;while(l1->next != nullptr && l2->next != nullptr){int temp = (l1->val+l2->val+carry);l1->val = temp%10; carry = temp/10;l1 = l1->next;l2 = l2->next;}if(l1->next == nullptr){int temp = (l1->val+l2->val+carry);l1->val = temp%10; carry = temp/10;if(l2->next == nullptr){if(carry == 1){l1->next = new ListNode(1);l1->next->next = nullptr;  }}else{l1->next = l2->next;l1 = l1->next;while(l1 ->next != nullptr){int temp = l1->val+carry;l1->val = temp%10;carry = temp/10;l1 = l1->next;}if(l1->val == 9 && carry ==1){l1->val = 0;l1->next = new ListNode(1);l1->next->next = nullptr;}else{l1->val += carry;}} }else{int temp = (l1->val+l2->val+carry);l1->val = temp%10; carry = temp/10;l1 = l1->next;while(l1 ->next != nullptr){int temp = l1->val+carry;l1->val = temp%10;carry = temp/10;l1 = l1->next;}if(l1->val == 9 && carry ==1){l1->val = 0;l1->next = new ListNode(1);l1->next->next = nullptr;}else{l1->val += carry; }}return head1;}
};

五、解题思路

(1) 链表中的两数相加,首先要知道数组的两数相加怎么做,我们采用的方法自然是模拟的方法,从低到高按照竖式计算的方式来进行模拟。我们采用逐个位置相加的方式,用carry统计是否进位,数字中未能遍历的数字进行向后补充即可。

(2) 链表中要跟数组等同,那自然需要知道链表的遍历方式,如果熟悉了链表的遍历方式,那么这道题目就很轻而易举的解决了。


http://www.ppmy.cn/news/735057.html

相关文章

海信A5无法进入系统,无法进入recovery,无法卡刷,无法进入edl,无法进入9008

海信A6&#xff0c;A6L&#xff0c;A5 只能进入fastboot&#xff0c;无法进入recovery&#xff0c;无法卡刷&#xff0c;拆机硬进edl 拆机后&#xff0c;使用镊子短接图中两点&#xff0c;设备会自动进入edl模式 如果不行&#xff0c;就拔掉电池排线&#xff0c;插上电池排线&a…

virtio-net前端-virtqueue

文章目录 1.概述2.数据结构3. 流程分析3.1 virtio总线创建3.3virtio-net3.3.1virtio-net初始化3.3.2 virtio-net驱动发送3.3.3 Qemu virtio-net设备接收 4.virtqueue4.1数据结构4.2发送4.3接收 1.概述 guest中的virtio驱动框架 核心模块为virtio和virtqueue&#xff0c;其他高…

[python][pcl]python-pcl案例之基于多项式重构的平滑和正态估计重采样

测试环境&#xff1a; pcl1.12.1 python-pcl0.3.1 python3.7 代码&#xff1a; # -*- coding: utf-8 -*- # Smoothing and normal estimation based on polynomial reconstruction # http://pointclouds.org/documentation/tutorials/resampling.php#moving-least-squares…

Win10系统无法安装字体显示字体无效

原因&#xff1a;没有启动防火墙服务&#xff0c;启动防火墙服务就可以了。我的是这个问题&#xff0c;可能有其他情况。

win10 安装字体且不占用系统盘资源

作为一个21世纪的新青年&#xff0c;电脑里怎么阔以只有那些沉闷的老旧字体呢&#xff0c;快跟进安装blingbling个性飘逸的时尚字体吧&#xff01; 如下&#xff1a;三步足矣~ 1. 首先在非系统盘建一个专门存字体的文件夹&#xff1a;将欲安装字体存进去 2. 控制面板<外观…

计算机字体安装按钮灰色,解决方案:在win10系统上将字体的安装按钮显示为灰色的详细步骤...

作为大多数用户使用的win10系统&#xff0c;如果win10系统中的字体安装按钮显示为灰色&#xff0c;那么我肯定遇到了win10系统中字体安装按钮显示为灰色的情况&#xff0c;该怎么办win10系统&#xff1f;无法安装字体&#xff0c;并且安装按钮为灰色&#xff1f;根据1、&#x…

win10字体安装_使用快捷方式安装字体,节省C盘空间,提高win操作系统运行速度...

在日常办公中,为了让文档排版美观,我们往往要给电脑安装很多字体,这样在排版时才有更多选择。如果是一个平面设计师,为了达到较好的设计效果,需要安装的字体就更多,几十种、上百种各式各样的中文字体、英文字体都会装上。字库的体积有时会达到惊人的10G,不但占用了硬盘空…

truetype字体怎么转换成普通字体_win10肿么安装truetype字体

Win 10 、Win 8 系统的默认字体比较模糊&#xff0c;如何改为美观清晰的宋体呢&#xff0c;修改注册表就可以做到&#xff0c;方法如下&#xff1a;方法/步骤Win 10 字体改为宋体方法&#xff1a;新建一个文本文档txt,将如下代码复制进去&#xff1a;Windows Registry Editor V…