您的位置:首页 > 其它

Insertion Sort List

2014-09-27 14:58 148 查看
Problem:

Sort a linked list using insertion sort.

Solution:

/**

 * Definition for singly-linked list.

 * public class ListNode {

 *     int val;

 *     ListNode next;

 *     ListNode(int x) {

 *         val = x;

 *         next = null;

 *     }

 * }

 */

public class Solution {

    public ListNode insertionSortList(ListNode head) {

        

        ListNode h = new ListNode(-1);

        h.next = head;

        ListNode p = head;

        

        if(p==null||p.next==null)

         return p;

        while(p.next!=null)

        {
     while(p.next!=null&&p.val<=p.next.val)
     {
     p = p.next;
     }
     if(p.next==null)
     break;
     ListNode q = h;
     while(q.next!=null&&q.next.val<=p.next.val)
     {
     q = q.next;
     }
     ListNode temp = q.next;
     q.next = p.next;
     p.next = p.next.next;
     q.next.next = temp;

        }

     return h.next;

    

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 leetcode