当前位置 : 主页 > 编程语言 > java >

#yyds干货盘点# 面试必刷TOP101:单链表的排序

来源:互联网 收集:自由互联 发布时间:2022-08-10
1.简述: 描述 给定一个节点数为n的无序单链表,对其按升序排序。 数据范围: 要求:时间复杂度 示例1 输入: {1,3,2,4,5} 返回值: {1,2,3,4,5}示例2 输入: {-1,0,-2} 返回值: {-2,-1,0} 2.代码

1.简述:

描述

给定一个节点数为n的无序单链表,对其按升序排序。

数据范围:

要求:时间复杂度 

示例1

输入:

{1,3,2,4,5}

返回值:

{1,2,3,4,5}示例2

输入:

{-1,0,-2}

返回值:

{-2,-1,0}

2.代码实现:

import java.util.*;

/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/

public class Solution {
/**
*
* @param head ListNode类 the head node
* @return ListNode类
*/
public ListNode sortInList (ListNode head) {
// write code here
ListNode cur = head;
List<Integer> list = new ArrayList<>();
while(cur != null){
list.add(cur.val);
cur = cur.next;
}
Collections.sort(list);
ListNode dummy = new ListNode(-1);
cur = dummy;
for(int v : list){
ListNode node = new ListNode(v);
cur.next = node;
cur = node;
}
return dummy.next;
}
}

上一篇:【Java面试】讲下线程池的线程回收
下一篇:没有了
网友评论