insertion-sort-list

//Sort a linked list using insertion sort

//單鏈表的插入排序

/**
 * Definition for singly-linked list.
 * public class ListNode

 *{
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */

public ListNode insertionSortList(ListNode head)

{

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

        {

                return head;

        }

        ListNode _newHead = new ListNode(Integer.MIN_VALUE);

        ListNode _node = head;

        while(_node != null)

        {

                ListNode _p = _newHead;

                //記錄_node的下一個節點

                ListNode _next = _node.next;

                while(_p.next != null && _p.next.val <= _node.val)

                {

                        _p = _p.next;

                }

                _node.next = _p.next;

                _p.next = _node;

                _node = _next;

        }

        return _newHead.next;

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章