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

leetcode 21

递归的方式

class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if(l1 == nullptr){return l2;}else if(l2 == nullptr){return l1;}else if(l1->val < l2->val){l1->next = mergeTwoLists(l1->next, l2);return l1;}else if(l1->val > l2->val){l2->next = mergeTwoLists(l1, l2->next);return l2;}else{l2->next = mergeTwoLists(l1, l2->next);return l2;}}
};

在这里插入图片描述
递归调用顺序是

m(1,1) -> m(1,3) -> m(2,3) -> m(4,3) ->m(4,4) -> m(4, nullptr)

比较特殊的是相等的情况;
这道题用递归做还是挺有创意的,一边递归,一边修改指针的内容;

迭代的方式

class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode* pre = new ListNode();ListNode* res = pre; while(l1 !=nullptr && l2!= nullptr){if(l1->val < l2->val){pre->next = l1;l1 = l1->next;}else{pre->next = l2;l2 = l2->next;}pre = pre->next;}pre ->next = l1 == nullptr? l2:l1;return res->next;}
};

迭代的方式空间复杂度会比递归好

http://www.lryc.cn/news/204581.html

相关文章:

  • 【Spring Cloud】openfeign负载均衡方案(和lb发展历史)
  • R语言:主成分分析PCA
  • Linux下磁盘备份、文件备份和定时备份命令指南
  • 电脑软件:推荐一款非常强大的pdf阅读编辑软件
  • Android 13.0 系统开机屏幕设置默认横屏显示
  • Redis -- 基础知识1
  • ubuntu 20.04 passwd 指令不能使用
  • 单片机郭天祥(02)
  • Hadoop3教程(三十五):(生产调优篇)HDFS小文件优化与MR集群简单压测
  • metersphere 接口自动化
  • Mac上安装和配置Git
  • 【文件操作】Java -操作File对象
  • Socks5代理技术:驱动数字化时代跨界发展的利器
  • 基于二维小波变换的散斑相位奇异构造算法matlab仿真
  • 为啥么有奖章
  • 【报错】Unbalanced delimiter found in string
  • Python(一)关键字、内置函数
  • 聊聊分布式架构10——Zookeeper入门详解
  • springmvc视图格式——模板引擎freemarker输出HTML文本
  • 用长tree方式做等长线
  • C# out参数out多个参数
  • 选择Android还是IOS?我终于明白了!
  • uniapp高德地图ios 使用uni.chooseLocation选取位置显示没有搜索到相关数据
  • Python绘制论文中的图形
  • flutter复制口令返回app监听粘贴板
  • 学习pytorch14 损失函数与反向传播
  • windows平台下Qt Creator的下载与安装流程
  • 在 Python 中使用 Pillow 进行图像处理【3/4】
  • 【Java】迭代器的next方法
  • java智慧工地云平台源码,以物联网、移动互联网技术为基础,结合大数据、云计算等,实现工程管理绿色化、数字化、精细化、智能化的效果