题解 | 单链表的排序
单链表的排序
https://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类 the head node
* @return ListNode类
*/
public ListNode sortInList (ListNode head) {
// write code here
//思路分析:直接将链表节点放到ArrayList中,自定义排序规则即可
ArrayList<Integer> list = new ArrayList<>();
while(head != null){
list.add(head.val);
head = head.next;
}
list.sort(new Comparator<Integer>(){
@Override
public int compare(Integer i,Integer j){
return i - j;
}
});
//3.新节点 + 新链表
ListNode dummyNode = new ListNode(-1);//虚拟节点
ListNode cur = dummyNode;
for (int i = 0; i < list.size(); i++) {
cur.next = new ListNode(list.get(i));
cur = cur.next;
}
return dummyNode.next;
}
}

查看4道真题和解析