链表相加(二)

题目

题目链接

链表相加(二)_牛客题霸_牛客网

题目描述

代码实现

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类*/ListNode* addInList(ListNode* head1, ListNode* head2) {// write code hereif(head1 == nullptr) return head2;if(head2 == nullptr) return head1;ListNode *Head1 = reverseList(head1), *Head2 = reverseList(head2);ListNode *phead = new ListNode(-1), *cur = phead;//构造哨兵位节点管理后边的新链表int carry = 0;//进位while(Head1 || Head2 || carry){int val1 = Head1 == nullptr ? 0 : Head1->val;int val2 = Head2 == nullptr ? 0 : Head2->val;int tmp = val1 + val2 + carry;carry = tmp / 10;tmp %= 10;ListNode* newNode = new ListNode(tmp);cur->next = newNode;cur = cur->next;if(Head1) Head1 = Head1->next;if(Head2) Head2 = Head2->next;}return reverseList(phead->next);}ListNode* reverseList(ListNode* head){//反转链表if(head->next == nullptr || head == nullptr) return head;ListNode* newHead = reverseList(head->next);head->next->next = head;head->next = nullptr;return newHead;}
};

思路分析

1、首先,对于单链表,我们往往从头节点使用更加方便。这里对两个链表进行相加,最先对链表尾部的数字进行相加。对此,我们首先对两个链表进行反转。对于链表的反转可以参考我的这篇博文

反转链表+牛客-CSDN博客

2、其次,我们就是对头节点进行相加。对于加法我们需要考虑进位。其次考虑其中的链表访问完之后,应该取0的情况。

3、然后,我们的结果相对于要求是相反的。还需要再进行反转链表即可。

4、最后,我们靠需要考虑些特殊情况,当其中一个链表为空的时候,我们可以将另外的一个链表直接返回即可。

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

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

相关文章

IMU用于消除心脏监测伪迹

随着传感器技术的进步,心脏活动测量即心冲击图(BCG)再次回到了科学研究的前沿。几位德国科学家研究出一个新版移动BCG测量系统,值得注意的是,此系统利用置于颈动脉的惯性测量单元(IMU)来消除BCG…

【AIGC】如何提高Prompt准确度

前言 随着人工智能的迅猛进展,AIGC(通用人工智能聊天工具)已成为多个行业中不可或缺的自然语言处理技术。Prompt作为AIGC系统的一项关键功能,在工具的有效运作中发挥了举足轻重的作用。本篇文章将深入探讨Prompt与AIGC之间的紧密…

探索数字未来:DApp钱包Defi引领新纪元

​小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 随…

扩散模型 公式理解

1.扩散过程优化公式 图摘选自李宏毅老师课程PPT 推导过程:本过程的推导需要使用分布合并和重参数化 分布合并-对于独立的两个正态分布,,那么有。 重参数化:若需要采样一个,则可以通过采样一个,进行逆标准…

【金三银四】每日一点面试题(Java--场景篇)

如何防止订单重复支付的? 本篇文章来源: Java基基https://mp.weixin.qq.com/s/xh2scdFTN6J7d4WHjDtS1g 如图是一个简化的下单流程,首先是提交订单,然后是支付。 支付的话,一般是走支付网关(支付中心&#…

掌握未来技术:一站式深度学习学习平台体验!

介绍:深度学习是机器学习的一个子领域,它模仿人脑的分析和学习能力,通过构建和训练多层神经网络来学习数据的内在规律和表示层次。 深度学习的核心在于能够自动学习数据中的高层次特征,而无需人工进行复杂的特征工程。这种方法在图…

什么是网络安全、信息安全、计算机安全,有何区别?

这三个概念都存在,一般人可能会混为一谈。 究竟它们之间是什么关系?并列?交叉? 可能从广义上来说它们都可以用来表示安全security这样一个笼统的概念。 但如果从狭义上理解,它们应该是有区别的,区别在哪呢&…

【AWS Credit】AWS服务抵扣金额兑换操作步骤演示说明

AWS 服务抵扣金额可应用于账单,帮助支付与符合条件的服务相关联的成本。服务抵扣金额在用尽或过期之前均可应用。 文章目录 AWS Credit 使用说明1.登录到AWS控制台2.导航至“账单和成本管理”3.点击“积分”,选择“兑换积分”4.输入优惠代码及安全代码5.…

stm32f103zet6笔记1-led工程

1、选择串口调试 2、LED0连接到PB5,PB5设置为推挽输出。PE5同理。 3、生成成对的.c,.h文件。 4、debugger选择j-link。 5、connection选择SWD。 6、编写bsp_led.c,bsp_led.h文件。 7、下载调试,可以看到LED0 500ms闪烁一次,LED1 1000ms闪烁一…

精读《用 css grid 重新思考布局》

1 引言 Flex 与 Grid 相比就像功能键盘和触摸屏。触摸屏的控制力相比功能键盘来说就像是降维打击,因为功能键盘只能上下左右控制(x、y 轴),而触摸屏打破了布局障碍,直接从(z 轴)触达&#xff0…

Vue使用高德地图定位到当前位置,并显示天气信息

首先得去高德控制台申请两个 key,一个天气key和一个定位key 获取天气信息的函数: const getWeather function (city) {// 使用 fetch 发送请求获取天气信息fetch(https://restapi.amap.com/v3/weather/weatherInfo?city${city}&keyeefd36557b0250…

云计算——ACA学习 弹性伸缩概述

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 写在前面 本系列将会持续更新云计算阿里云ACA的学习…