【Leetcode】Sort List in java,你絕對想不到我是怎麼做的^^我寫完過了我自己都覺得好jian~__Java

來源:互聯網
上載者:User

Sort a linked list in O(n log n) time using constant space complexity.

大家看完題目估計跟我一樣啦。。。都在想哪些是nlogn啊~快速排序、歸併排序、堆排序。然後開始愁,這些東西變成list了可怎麼辦啊。。。

可是我深深地記得在CMU的時候老師告訴我,java現在內建的Arrays.sort用的是快排,然後我就想,那麼……為什麼不把list轉成array然後排完了放回去呢。

於是我就用一個arraylist先裝這個list,然後再把arraylist轉成array去sort,然後把結果再存進一個linkedlist返回頭結點~寫到這裡自己都想樂了,又笨又好玩的方法~

不說了,直接上代碼~已通過leetcode測試~附帶測試main函數

import java.util.ArrayList;import java.util.Arrays;public class sortList {public static void main(String args[]){sortList dp = new sortList();ListNode head  = new ListNode(3);ListNode p1 = new ListNode(2);head.next=p1;ListNode p2  = new ListNode(1);p1.next =  p2;ListNode p3 = new ListNode(5);p2.next = p3;ListNode p4 = new ListNode(4);p3.next = p4;prinf(head);prinf(dp.sortList(head));}private static void prinf(ListNode input){while(input!=null){System.out.print(input.val+"->");input = input.next;}System.out.println();}
<span style="white-space:pre"></span>//下面犯賤開始public ListNode sortList(ListNode head) {//建議大家換個方法名或者class名,我這裡重複了if(head==null)  return head;        ArrayList<Integer> arr = new ArrayList<Integer>();        int j=0;        ListNode p= head;        while(p!=null){        arr.add(p.val);        p=p.next;        }        Object[] array = arr.toArray();        Arrays.sort(array);//其實只有這一步。。。        ListNode start= new ListNode(0);        ListNode q = start;        for(int i=0;i<array.length;i++){        q.val=(Integer) array[i];        if(i==array.length-1){q.next = null;break;}        ListNode k = new ListNode(0);        q.next=k;        q=k;        }        return start;    }}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.