leetcode_Insertion Sort List

来源:互联网 发布:杀人软件app 编辑:程序博客网 时间:2024/06/05 11:43

描述:

Sort a linked list using insertion sort.

思路:

实现对链表的插入排序,显然,只能从头开始对链表进行插入排序了,时间复杂度O(n*n)

代码:

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode insertionSortList(ListNode head) {        if(head==null||head.next==null)            return head;        ListNode newHead=new ListNode(0);        newHead.next=head;        ListNode temp=null,p=head,q=null;        while(p.next!=null)        {            if(p.val<=p.next.val)            {                p=p.next;            }else            {                temp=p.next;                p.next=p.next.next;                 q=newHead;                 while(q!=p)                {                 if(temp.val<q.next.val)                {                    temp.next=q.next;                    q.next=temp;                    break;                 }                 q=q.next;                                }            }                   }        return newHead.next;    }}


0 0