Leetcode21. 合并两个有序链表 题目:

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

示例:

输入: 1->2->4, 1->3->4
输出: 1->1->2->3->4->4

思路1(递归):

  • 如果 l1 或者 l2 为空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。
  • 否则,我们要判断 l1 和 l2 两个链表的头节点的最小值,然后递归地决定下一个添加到结果里的节点。
  • 如果两个链表有一个为空,递归结束。

Java AC代码:

public class Leetcode21 {public class ListNode {int val;ListNode next;ListNode(int x) {val = x;}}//递归public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) {return l2;} else if (l2 == null) {return l1;} else if (l1.val < l2.val) {l1.next = mergeTwoLists(l1.next, l2);return l1;} else {l2.next = mergeTwoLists(l1, l2.next);return l2;}}
}

思路2(迭代):

  • 首先,我们设定一个节点 listNode ,用以返回合并后的链表。
  • 我们使用一个 pre 指针,我们需要做的是调整它的 next 指针。
  • 重复以下过程,直到 l1 或者 l2 指向了 null :如果 l1 当前节点的值小于等于 l2 ,就把 l1 当前的节点接在 pre 节点的后面同时将 l1 指针往后移一位。
  • 否则,对 l2 做同样的操作。(不管将哪一个元素接在了后面,我们都需要把 pre 向后移一位。)
  • 在循环终止的时候, l1 和 l2 至多有一个是非空的。由于输入的两个链表都是有序的,需要将非空链表接在合并链表的后面,并返回合并链表。

Java AC代码:

public class Leetcode21 {public class ListNode {int val;ListNode next;ListNode(int x) {val = x;}}//迭代public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode listNode = new ListNode(-1);ListNode pre = listNode;while (l1 != null && l2 != null) {if (l1.val <= l2.val) {pre.next = l1;l1 = l1.next;} else {pre.next = l2;l2 = l2.next;}pre = pre.next;}//指向未被遍历完的链表pre.next = l1 == null ? l2 : l1;return listNode.next;}
}

昨天因为出去有点事情,没有时间每日一题,今天补一下,之后这5.1几天的放假的卡因为要先把毕设弄完的关系也要先欠一下,之后有时间会补回来!!
2020.4.30补卡(2020.5.1)

Rayman的绝顶之路——Leetcode每日一题打卡16相关推荐

  1. LeetCode每日一题打卡组队监督!刷题群!

    近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...

  2. 关于LeetCode每日一题打卡失败的感悟

    背景 今年5月,报名参加了三叶姐的"五月打卡活动",押金29.9元,要求每天在力扣上每日一题打卡,完成则押金全退,完不成则押金不退. 事件 2022.5.10,LeetCode上的 ...

  3. Leetcode每日一题(914. 卡牌分组)

    914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...

  4. LeetCode 每日一题打卡:334.递增的三元子序列

    题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...

  5. 【Leetcode 每日一题】514. 自由之路(BFS+优先队列)

    Leetcode 每日一题 题目链接:514. 自由之路 难度: 困难 解题思路: 这道题乍一看,可以选择用动态规划或者BFS来求解.本文使用BFS来进行解答.注意到题中有一个最小的到路径.所以我们可 ...

  6. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  7. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  8. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  9. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  10. LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色

    LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...

最新文章

  1. 三维重建【二】————3D reconstruction 较为实用的算法资料整理(传统方式)
  2. 给字母保密的c语言,C语言练习题
  3. Sentinel(十七)之启动配置项
  4. 撸表情开发过程中使用腾讯云存储的接入实例分享
  5. 集成学习中的随机森林
  6. i9 9900k mysql_i9-9900K性能如何 CPU天梯图秒懂i9-9900K性能排行
  7. 一、图解Java中String不可变性
  8. 融媒体需要什么计算机软件,融媒体时代对编辑的能力要求
  9. PowerBuilder9.0连接ORACLE数据库
  10. VS Code:4个中文乱码问题及解决方法
  11. LVGL misc tlsf算法(lv_tlsf.c)
  12. 磨刀不误砍柴工——实验工具准备
  13. Utility工具类:
  14. C#——lambda表达式和反射
  15. shell脚本实现俄罗斯方块
  16. NLP定义和机器翻译
  17. 你做过哪些事情让你女朋友感动到哭,这个100%可以做到!
  18. [日语二级词汇]日语二级必会汉字总结10
  19. PCIe系列第四讲、TLP的路由方式
  20. arcgis栅格缺失值填补

热门文章

  1. 鼠标移上去变小手样式
  2. 2的指数字节转与MB、GB换算关系
  3. 数学证明方法介绍(演绎推理、数学归纳法)
  4. GEE系列:第7单元 利用GEE进行遥感影像分类【随机森林分类】
  5. NMDS非度量多维尺度分析
  6. SCI 文章的DOI查询以及搜索
  7. 非常好用的节假日查询接口
  8. 在Ubuntu上安装WPS,并解决字体缺失问题
  9. java设计模式之单例模式详解
  10. 线性代数(一)矩阵和方程组