Leetcode第21题:合并两个有序链表
创始人
2024-01-22 00:30:34
0

生命无罪,健康万岁,我是laity。

我曾七次鄙视自己的灵魂:

第一次,当它本可进取时,却故作谦卑;

第二次,当它在空虚时,用爱欲来填充;

第三次,在困难和容易之间,它选择了容易;

第四次,它犯了错,却借由别人也会犯错来宽慰自己;

第五次,它自由软弱,却把它认为是生命的坚韧;

第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;

第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。

Leetcode第21题:合并两个有序链表

题目

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
在这里插入图片描述

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

示例 2:

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

示例 3:

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

将两个数组中的数据进行排序,组合成一个新的数组

解题

迭代法

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode per = new ListNode();ListNode res = per;while (list1 != null && list2 != null) {if (list1.val <= list2.val) {res.next = list1;list1 = list1.next;} else {res.next = list2;list2 = list2.next;}res = res.next;}if (list1 == null) {res.next = list2;}res.next = list1 == null ? list2 : list1;return per.next;}
}

递归法

    public ListNode mergeTwoLists2(ListNode list1, ListNode list2) {if (list1 == null || list2 == null) {return list1 == null ? list2 : list1;}if (list1.val <= list2.val) {list1.next = mergeTwoLists2(list1.next, list2);return list1;} else {list2.next = mergeTwoLists2(list1, list2.next);return list2;}}

全代码

/*** @author: Laity* @Project: JavaLaity* @Package: LeetCode.t21.MergeTwoLists* @Date: 2022年11月13日 18:10* @Description: Leetcode第21题:合并两个有序链表*/
public class MergeTwoLists {/*** 迭代法*/public ListNode mergeTwoLists1(ListNode list1, ListNode list2) {ListNode res = new ListNode();ListNode cur = res;  // 当做指针 指向当前的reswhile (list1 != null && list2 != null) {if (list1.val <= list2.val) {cur.next = list1;// 抛开相等 指向数值小的下一个 可与 当前的 list2.val继续比较list1 = list1.next;} else {// list1.val > list2.valcur.next = list2;list2 = list2.next;}cur = cur.next;}// 各个ListNode判空:1、预防两个ListNode长度不等;2、解决当传入的ListNode为空时的解决方案cur.next = list1 == null ? list2 : list1;
//        if (list1 == null) {
//            cur.next = list2;
//        }
//        if (list2 == null) {
//            cur.next = list1;
//        }return res.next;}/*** 递归法*/public ListNode mergeTwoLists2(ListNode list1, ListNode list2) {if (list1 == null || list2 == null) {return list1 == null ? list2 : list1;}if (list1.val <= list2.val) {list1.next = mergeTwoLists2(list1.next, list2);return list1;} else {list2.next = mergeTwoLists2(list1, list2.next);return list2;}}public static void main(String[] args) {// 迭代法 Iteration// 递归法}public class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}}
}

实力是自信的基础,自信是实力的前提。我是Laity,正在前行的Laity。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...