【百日算法计划】:每日一题,见证成长(010)

题目

合并两个排序的链表

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

示例1:

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

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

思路

引入一个带虚拟头结点和tail指针的结果链表,把原节点的值比较大小后加入到结果链表中。

java 复制代码
 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

    if (l1 == null) return l2;
    if (l2 == null) return l1;

    ListNode p1 = l1;
    ListNode p2 = l2;

    //创建一个新链表,用于存放排序好的链表
    ListNode resultNode = new ListNode();
    ListNode tail = resultNode;//尾指针

    while (p1 != null && p2 != null){
        if (p1.val <= p2.val){
            tail.next = p1;
            tail = p1;
            p1 = p1.next;
        } else {
            tail.next = p2;
            tail = p2;
            p2 = p2.next;
        }
    }
    if (p1 != null) tail.next = p1;
    if (p2 != null) tail.next = p2;
    return resultNode.next;
 }
相关推荐
包饭厅咸鱼18 分钟前
PaddleOCR----制作数据集,模型训练,验证 QT部署(未完成)
算法
无敌最俊朗@31 分钟前
C++ 并发与同步速查笔记(整理版)
开发语言·c++·算法
王哈哈^_^33 分钟前
【完整源码+数据集】课堂行为数据集,yolo课堂行为检测数据集 2090 张,学生课堂行为识别数据集,目标检测课堂行为识别系统实战教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
夏鹏今天学习了吗1 小时前
【LeetCode热题100(66/100)】寻找两个正序数组的中位数
算法·leetcode·职场和发展
墨染点香1 小时前
LeetCode 刷题【151. 反转字符串中的单词】
算法·leetcode·职场和发展
ytttr8731 小时前
Landweber迭代算法用于一维、二维图像重建
人工智能·算法·机器学习
feifeigo1232 小时前
Matlab编写压缩感知重建算法集
人工智能·算法·matlab
烛衔溟2 小时前
C语言多级指针与函数指针:指针的高级用法
c语言·算法
Sunhen_Qiletian3 小时前
YOLOv2算法详解(下篇):细节打磨与性能突破的终极密码
算法·yolo