代码编织梦想

题目

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:
输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
限制:

0 <= 链表长度 <= 1000

分析

创建一个新的节点merge,同时设置新的指针temp,temp指针指向merge,设置两个指针分别指向两个链表,然后同时遍历并比较它俩的大小,如果l1的值小则让temp指向它,反之l2小就指向l2,然后继续同时遍历直到其中一个链表遍历完,然后temp指向还没遍历完的链表,这样merge所指向的链表就是要求的链表。
在这里插入图片描述

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode  merge = new ListNode(0);
        ListNode temp = merge;
        //只要有一个链表遍历完就结束循环
        while(l1 !=null && l2 !=null){
            if(l1.val < l2.val){
                temp.next = l1;
                l1 = l1.next;
            }else{
                temp.next = l2;
                l2 = l2.next;
            }
            temp = temp.next;
        }
        //结束循环后,temp指向还没遍历完的链表指针
        temp.next = l1==null?l2:l1;
        return merge.next;
    }
}

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jiaodaqiaobiluo/article/details/126982204

合并两个排序链表-lintcode-爱代码爱编程

描述: 将两个排序链表合并为一个新的排序链表。 样例: 给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。 思路: 这道题其实跟上一道链表的插入排序是亲兄弟啊,在链表的插入排序里面我们自己创建

lintcode-合并两个排序链表-爱代码爱编程

题目描述:将两个排序链表合并为一个新的排序链表 样例 给出 1->3->8->11->15->null,2->null,返回 1->2->3->8->11->15->null。 做题思路:用两个头结点l1和l2遍历两个链表,比较结点值的大小,小的那个进入新的链表,新链表定义

lintcode——合并两个排序链表-爱代码爱编程

1.题目      将两个排序链表合并为一个新的排序链表      给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。 2.思路      新建一个链表,对给定的两个链表从头遍历并比较大小,每次将较小(&l

lintcode合并两个排序链表_飞翔的黄瓜的博客-爱代码爱编程

合并两个排序链表   描述 笔记  数据  评测 将两个排序链表合并为一个新的排序链表 您在真实的面试中是否遇到过这个题?  Yes 样例 给

25-合并两个排序的链表-爱代码爱编程

        输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。如输入:1->2->4, 1->3->4;输出:1->1->2->3->4->4。         解析的过程中,需要关注两个点:1.将两个链表合并成一个链表;2.新合并的链表也要符合递增。在初始化的时候先虚拟化

Java实现合并两个排序的链表-爱代码爱编程

Java 合并两个排序的链表 与最后一步类似:过程:图示只是一次 while 循环Java 实现: /** * 合并两个排序的链表 和 归并排序 有些 类型 * @author ease * */ public class Solution { public ListNode Merge(ListNode list1,ListNode

合并两个排序链表(c语言)_c语言合并两个链表,按顺序-爱代码爱编程

先看题,其实题目很明白: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 这道题有递归和非递归做法,主要学习的是递归的想法。 题目的函数: struct ListNode *

算法的时间复杂度与空间复杂度_算法的时间复杂度和空间复杂度-爱代码爱编程

文章目录 1. 函数的渐进增长2. 算法时间复杂度2.1 什么是时间复杂度2.2 大O阶方法如何推导2.3 常数阶2.4 线性阶2.5 对数阶2.6 平方阶2.7 常用的时间复杂度2.8 最坏与最好情况

顺序表(c++实现)_顺序表前驱后继-爱代码爱编程

数据结构(面向对象方法与C++语言描述)(第2版)线性表内容整理 顺序表 顺序表是基于数组的线性表的存储表示,其特点是用物理位置上的邻接关系来表示结点间的逻辑关系。 优点: (1)无需为表示结点间的逻辑关系而增加额外

离散化(保序 / 非保序)-爱代码爱编程

目录 概念 可能出现的问题 分类 1.保序  离散化模板( https://www.acwing.com/blog/content/277/)  例题:区间和 思路 代码 2.不保序 概念         给定一系列要为坐标的值,可能很大,1 到 10e9  ,总不能开一个10e9的数组吧,就要涉及到离散化,将10e5个数(大小在

一文详解linux内核数据结构之kfifo-爱代码爱编程

本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现,提供一个无边界的字节流服务,并且使用并行无锁编程技术,即

算法与数据结构 -爱代码爱编程

第一部分 --- 哈夫曼树的基本概念     对一个判断树的判断次序进行改变后判断的总次数就可能截然不同 如上图,在面对一万个数据的时候,左边的判断树的判断总次数为22000次,右边的判断树的判断总次数为31500次,效率高了接近三分之一 效率最高的判别树又称为最优二叉树(哈夫曼树)-   1.从树的根结点到树中的每一个结点的路径长度之和

【数据结构与算法】双向链表(添加节点、更新节点、删除节点、打印链表)_双向链表中间增加一个节点,口述-爱代码爱编程

目录 1. 单向链表的缺点2. 双向链表的介绍3. 带head头的双向链表实现 1. 单向链表的缺点 前面我们学习了单向链表。虽然有了单向链表,但在解决某些实际问题时,单向链表的执行效率并不高 例