1 import java.util.*; 2 3 /* 4 * public class ListNode { 5 * int val; 6 * ListNode next = null; 7 * public ListNode(int val) { 8 * this.val = val; 9 * } 10 * } 11 */ 12 public class Solution { 13 /** 14 * @param head 输入链表的头结点 15 * @return 排序后的链表头节点 16 */ 17 public ListNode sortInList (ListNode head) { 18 // 申请临时数组用于排序 19 ArrayList<Integer> nums = new ArrayList(); 20 // 申请临时节点作为遍历指针 21 ListNode p = head; 22 // 遍历链表将节点值加入数组 23 while(p != null){ 24 nums.add(p.val); 25 p = p.next; 26 } 27 // 对数组元素排序 28 Collections.sort(nums); 29 // 将临时节点指向头结点用于排序后的赋值 30 p = head; 31 // 遍历数组赋值 32 for(int i = 0; i < nums.size(); i++){ 33 // 将数组元素依次加入链表 34 p.val = nums.get(i); 35 p = p.next; 36 } 37 return head; 38 } 39 }
标签:head,单链,ListNode,val,nums,链表,12,排序 From: https://www.cnblogs.com/StringBuilder/p/17832855.html