LeetCode:148. Sort List(對連結串列進行排序)
阿新 • • 發佈:2018-12-10
Sort a linked list in O(n log n) time using constant space complexity.
Example 1:
Input: 4->2->1->3 Output: 1->2->3->4
Example 2:
Input: -1->5->3->4->0 Output: -1->0->3->4->5
方法1:(這個演算法筆記直接,我就用了平時一種比較常見的方法,官方的方法比較難想到,就不推薦了)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode sortList(ListNode head) { ListNode p=new ListNode(0); ListNode newHead=p; List<Integer> list=new ArrayList<>(); while(head!=null){ list.add(head.val); head=head.next; } Collections.sort(list); for(int ele:list){ p.next=new ListNode(ele); p=p.next; } return newHead.next; } }
時間複雜度:O(n.logn)
空間複雜度: