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

dfs(十二)21. 合并两个有序链表 递归解决

 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
  • l1l2 均按 非递减顺序 排列

/**
 * 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* dfs(ListNode* list1, ListNode* list2) {
        if(list1 == nullptr)
            return list2;
        if(list2 == nullptr) 某个指针递归到空位置,直接返回另外一个
            return list1;
        if(list1->val <= list2->val)    选择一个值小的作为头
        {     
            相信dfs(list1->next, list2);函数可以返回下一个合适大小的值   
            list1->next = dfs(list1->next, list2);
            return list1;
        }
        else
        {
            list2->next = dfs(list1, list2->next);
            return list2;
        }
    }
};
http://www.dtcms.com/a/74595.html

相关文章:

  • Spring 框架中常用注解和使用方法
  • 如何管理需求变更
  • 做游戏的发展方向
  • Skyeye 云智能制造办公系统 VUE 版本 v3.15.13 发布
  • ChatGPT and Claude国内使用站点
  • CareUEyes护眼软件深度解析:为你的双眼保驾护航
  • 基于Gemini 生成 Gemini Embedding
  • 学习笔记之注册用户如何防止缓存穿透
  • 365天之第P10周:Pytorch实现车牌识别
  • OceanBase 4.3.3 AP 功能解析:物化视图
  • 嵌入式开发之STM32学习笔记day06
  • C语言:编程设计猜数游戏
  • 【Dify平台】Function Call 模式模式和ReAct模型有什么不同?
  • 大数据技术链路详解
  • 什么是数学建模?数学建模是将实际问题转化为数学问题
  • C++学习笔记(二十一)——文件读写
  • 蓝桥杯 阶乘约数
  • 使用matlab求伴随矩阵
  • 图像处理篇:图像预处理——从数据到模型的桥梁
  • SSH反向隧道
  • 2025年渗透测试面试题总结-某四字大厂面试复盘 一面(题目+回答)
  • 【AI学习从零至壹】Pytorch神经⽹络
  • RAGFlow部署与使用(开源本地知识库管理系统,包括kibana配置)
  • 消息队列导致数据库数据读取不一致解决方案
  • 【协作开发】低成本一键复刻github的gitea
  • Leetcode 3483. Unique 3-Digit Even Numbers
  • 第四十八篇——数学和其它学科:为什么数学是更底层的工具?
  • Chrome 调试器第二次连接不上?
  • 关闭Windows更新
  • Vue3 + Element Plus 图片加载优化全攻略