思路:
1.遍历链表,把链表放入list集合中
2.利用集合中的sort方法,对ListNode按照val值升序排序。
注意;此处我使用Collections.sort(list,new comparator<>(){})的方式测试时正常,最终提交时超时了,而使用lambda表达式就成功了,也许是我哪里写错了。
3.最后再遍历list集合,一个一个串起来即可。
public ListNode sortInList (ListNode head) { // write code here ArrayList<ListNode> list=new ArrayList<ListNode>(); ListNode h=head; while(h!=null){ list.add(h); h=h.next; } list.sort((o1,o2)->{ return o1.val-o2.val; }); ListNode head_new=new ListNode(-1); ListNode p=head_new; for(ListNode node:list){ p.next=node; p=p.next; } p.next=null; return head_new.next; }