题解 | #单链表的排序#
单链表的排序
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; } }