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

iis网站的建设谷歌网站网址

iis网站的建设,谷歌网站网址,access如何与网站连接数据库,成全视频在线观看高清版目录 21.合并两个有序链表 题目描述 题目链接 解题思路与代码 2.两数相加 题目描述 题目链接 解题思路与代码 --------------------------------------------------------------------------- 21.合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返…

目录

21.合并两个有序链表

题目描述

题目链接

解题思路与代码

2.两数相加

题目描述

题目链接

解题思路与代码

---------------------------------------------------------------------------

21.合并两个有序链表

题目描述

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

提示:

  • 两个链表的节点数目范围是 [0, 50]
  • -100 <= Node.val <= 100
  • l1 和 l2 均按 非递减顺序 排列

题目链接

21.合并两个有序链表

解题思路与代码

这题其实很简单。首先,我们创立一个虚拟头节点,作为返回结果的存储链表。然后我们使用的是双指针思路,两个链表进行比较,然后比较小的那一个结点放到我们创立的新头节点后面,同时将该指针向后移动一位,如图:

(初始状态)

(一次比较)

(二次比较)

(三次比较)

(四次比较)

(五次比较)

(六次比较)

(七次比较)

此时应该已经跳出循环了,所以执行这行代码,将剩下一段的合并到最终链表里面。

cur ->next = (list1 == NULL) ? list2 : list1;

最后我们发现nhead用于遍历链表存数据,然后res是我们一开始就建立的变量,最后只需要返回res->next就是最终结果。

(c++代码)

/*** 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* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode* nhead = new ListNode();ListNode* cur = nhead;while(list1 != NULL && list2 != NULL) {if(list1 ->val < list2 ->val) {cur ->next = list1;list1 = list1 ->next;}else {cur->next = list2;list2 = list2 ->next;}cur = cur ->next;}cur ->next = (list1 == NULL) ? list2 : list1;return nhead ->next; }
};

2.两数相加

题目描述

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

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

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

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]

示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

提示:

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

题目链接

2.两数相加

解题思路与代码

假设有这么两个初始链表,然后head是我们创建的结果链表的虚拟头节点。

解题思路:

本题其实就是一个用链表模拟加法的问题,涉及一个加法进位的问题,

比如看上图这个例子,换成数字加法就很好理解了。

3 5 9

9 9 0

3 + 9 余2进1

              5  9

              9   0

              1

结果:2 

5 + 9 + 1 余5进1

                   9

                   0

                   1

结果:2  5

0 + 1 + 9 余0进1

结果 2 5 0 1

按顺序存入链表就是最终结果

tem : 每次循环存储l1和l2对应结点的和(也可能只加一个结点,因为存在一个结点为空,另一个不为空的情况),t是存储上一次加法是否进位,进位用tem/10获取。

当前位结果用tem% 10获取。

后面就是简单的处理逻辑。

(c++代码)

/*** 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* head = new ListNode();ListNode* res = head;int t = 0;while(l1 != NULL || l2 != NULL) {int tem = t;if(l1 != NULL) {tem += l1 ->val;l1 = l1 ->next;}if(l2 != NULL ) {tem += l2 ->val;l2 = l2 ->next;}int num = tem % 10;t = tem / 10;ListNode* node = new ListNode(num);head ->next = node;head = head ->next;}if(t == 1) head ->next = new ListNode(t);return res ->next;}
};

欧克,这就是今天的力扣啦。

http://www.hkea.cn/news/906067/

相关文章:

  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费
  • 如何用腾讯云主机做网站株洲发布最新通告
  • 中国建设银行官网站下载信息流广告投放公司
  • 合肥建站平台网络平台推广是干什么
  • 黄冈工程建设标准造价信息网优化工作流程
  • 怎么做服装外贸网站怎么去推广一个产品
  • 和各大网站做视频的工作总结软件推广赚佣金渠道
  • asp.net是做网站的吗企业文化培训
  • 有链接的网站怎么做seochan是什么意思
  • 开发公司 工程管理中存在问题seo人工智能
  • 网站卖给别人后做违法信息seo和点击付费的区别
  • 网站配色 绿色网络推广主要做什么
  • 个人网站制作多少钱公关公司的主要业务
  • 网站底备案号链接代码西安网络推广营销公司
  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐
  • 没有货源可以开网店吗网站更新seo