import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode sortList (ListNode head) { // write code here ArrayList<Integer> arrayList = new ArrayList<>(); while (head != null) { arrayList.add(head.val); head = head.next; } arrayList.sort(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } }); ListNode result = new ListNode(0); ListNode target = result; for (int i = 0; i < arrayList.size(); i++) { result.next = new ListNode(arrayList.get(i)); result = result.next; } return target.next; } }
本题主要考察的知识点是链表,所用编程语言为java.我采用的是暴力算法,直接将链表的所有节点值存储在arraylist里面,再将arraylist里面元素进行排序,最后重新按照排序好的元素值新建一个链表