首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
链表排序
[编程题]链表排序
热度指数:84324
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M
算法知识视频讲解
在O(n log n)的时间内使用常数级空间复杂度对链表进行排序。
示例1
输入
{30,20,40}
输出
{20,30,40}
说明:本题目包含复杂数据结构ListNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(117)
邀请回答
收藏(614)
分享
提交结果有问题?
213个回答
14篇题解
开通博客
HhhhHhhh_
发表于 2020-06-18 23:35:27
无非就是归并排序运用在链表上(由于链表不能索引访问,故快排桶排并不合适),拆表用快慢指针即可 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ p
展开全文
牛客697564601号
发表于 2020-10-13 11:58:32
快排也是可以的,多几个指针保存下哨兵位的左右子链表,需要注意的是处理当左右子链表为空的情况 时间复杂度O(nlogn),空间复杂度其实是O(logn),因为有栈的开销,但是其他解答里都是归并,其实也差不多,只有那个用cut的是满足题意的 ListNode* sort_inner_
展开全文
华科不平凡
发表于 2020-08-10 11:35:32
花了一晚上都没整明白,细节太重要啦!!! 里面的几个步骤都是难点:1.自底向上思想;2.断链3.归并4.合链 涉及到的指针操作&&边界条件多,一不小心就入坑了。。。 不过归根结底,还是自己太菜啊。。呜呜 // // Created by jt on 2020/8/8. // 循环实现
展开全文
牛客张立_不足胜有余
发表于 2021-06-23 11:51:33
public ListNode sortList(ListNode head) { if( head == null ){ return head; } List<ListNode> list = new
展开全文
流夜
发表于 2021-10-28 18:44:50
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @
展开全文
恒成立
发表于 2021-03-27 19:55:42
时间复杂度为: nlog(n)归并排序的时间复杂度是 nlog(n)解题思路:1.找到链表的中间节点2.注意:要保证从head到mid之后,就不能继续排序所以要将mid.next备份为midNext,并将mid.next置为null3.归并排序链表 import java.util.*; /*
展开全文
ZackHuang
发表于 2020-08-14 16:56:39
class Solution { public: ListNode* slow = nullptr, * fast = nullptr, * head = nullptr, * cur=nullptr; ListNode* sortList(ListNode* head) {
展开全文
ywl0211
发表于 2021-10-25 16:57:10
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ListNode类 # @return ListNode类 #
展开全文
牛客808484225号
发表于 2022-08-08 09:43:05
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ pub
展开全文
怎么不被卷飞
发表于 2021-06-30 11:27:37
//归并排序注意合并时 排序使用两个指针 ,避免两次循环的排序方法 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class S
展开全文
问题信息
C++工程师
golang工程师
iOS工程师
安卓工程师
运维工程师
链表
前端工程师
算法工程师
测试工程师
PHP工程师
排序
Java工程师
来自:
牛客考试系统测试卷
难度:
213条回答
614收藏
58525浏览
热门推荐
通过挑战的用户
查看代码
grandsail
2023-03-08 00:10:27
阿金要努力
2023-03-04 01:22:51
局外人2019...
2023-01-05 17:02:41
牛客54140...
2022-11-30 15:29:41
牛客24770...
2022-10-18 11:56:20
相关试题
下面描述中,符合结构化程序设计风格...
搜狐
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
栈的插入和删除操作在(&n...
2015
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
c#工程师
恒生电子
golang工程师
评论
(5)
来自
恒生公司2015秋招开发...
编程题 ,按照要求创建Java 应...
Java
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
链表排序
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @return ListNode类 */ public ListNode sortList (ListNode head) { // write code here } }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param head ListNode类 * @return ListNode类 */ ListNode* sortList(ListNode* head) { // write code here } };
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ListNode类 # @return ListNode类 # class Solution: def sortList(self , head ): # write code here
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @return ListNode类 */ function sortList( head ) { // write code here } module.exports = { sortList : sortList };
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ListNode类 # @return ListNode类 # class Solution: def sortList(self , head ): # write code here
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * * @param head ListNode类 * @return ListNode类 */ func sortList( head *ListNode ) *ListNode { // write code here }
{30,20,40}
{20,30,40}