博客
关于我
【刷题1】LeetCode 21. 合并两个有序链表 java题解
阅读量:762 次
发布时间:2019-03-23

本文共 775 字,大约阅读时间需要 2 分钟。

合并两个有序链表的方法

单节点链表的定义

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 l1, ListNode l2) {
如果两个链表都为空,返回空节点
如果一个链表为空,直接返回另一个链表
初始化合并链表的顶部节点,并用临时节点跟踪当前位置
使用循环迭代,在两个链表都为空之前进行比较并合并节点
当某个链表遍历完毕后,将剩下的节点连接到结果链表中
返回合并后的链表起始节点
}

时间复杂度:O(n+m)

合并两个链表的时间复杂度是两个链表长度之和,主要是为了遍历每个节点

空间复杂度:O(1)
我们仅使用常数空间来存储几个变量,主要是对比操作和字段访问

递归方法

递归方法通过递归调用函数来解决问题,具有以下优势:
简单易懂,逻辑清晰,实现代码较为简洁
适合edu环境下学习和理解基本算法思想

代码示例

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {      如果两个链表都为空,返回空节点      如果一个链表为空,直接返回另一个链表      否则,递归调用函数合并两头节点较小的链表      调用递归合并较大的链表剩余节点      最后将两部分连接起来  }

优点

  • 简单直观,易于理解
  • 适合递归训练,帮助掌握递归思想
  • 实现代码简洁,易于维护

转载地址:http://arczk.baihongyu.com/

你可能感兴趣的文章
NN&DL4.7 Parameters vs Hyperparameters
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
nnU-Net 终极指南
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>