题解 | #单链表的排序#
单链表的排序
https://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
超过95.13% 用Java提交的代码
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 temp = head;
int len = 0;
// 计算链表长度
while(temp != null){
len++;
temp = temp.next;
}
// 定义数组保存链表节点值
int[] num = new int[len];
temp = head;
int i = 0;
while(temp != null){
num[i++] = temp.val;
temp = temp.next;
}
// 数组排序
Arrays.sort(num);
temp = head;
int j = 0;
// 将排序后的数组顺序替换链表节点值
while(temp != null){
temp.val = num[j++];
temp = temp.next;
}
return head;
}
}