Leetcode 147. Insertion Sort List

题目:
Sort a linked list using insertion sort.

思路:把链表设置一个伪头结点(方便后面的插入操作),从第二个结点开始从真正的头结点开始比较,遇到比它大的结点,就把该结点插入这个节点之前

具体代码:

public ListNode insertionSortList(ListNode head) {
        if(head == null){
            return null;
        }
        ListNode phead =head.next;
        ListNode Head = new ListNode(0);//设置的伪头结点
        Head.next = head;
        head.next = null;
        ListNode p = Head;
        while(phead!= null){
            p = Head;
            while(p.next!= null && p.next.val < phead.val){
                p = p.next;
            }
            ListNode temp = phead;
            phead = phead.next;

            temp.next = p.next;
            p.next = temp;
        }
        return Head.next;
    }

你可能感兴趣的:(LeetCode,链表,linklist)