LeetCode 147 Insertion Sort List
2015-03-09 10:21
357 查看
问题:Sort a linked list using insertion sort.链表的插入。
这题的考察点:1)插入排序(以某个数为基准,一般是第一个数,将后面的数与它比较,放在前边还是后边。。。。)
2)其次是链表的插入,需要单向的遍历
这题的考察点:1)插入排序(以某个数为基准,一般是第一个数,将后面的数与它比较,放在前边还是后边。。。。)
2)其次是链表的插入,需要单向的遍历
public ListNode insertionSortList(ListNode head) { if(head==null||head.next==null)return head;//head为空或只有一个数返回head int minNum=Integer.MIN_VALUE;//新建一个结点作为头结点,头结点的值为整数的最小值 ListNode p=new ListNode(minNum); p.next=head; head=p; p=p.next; ListNode q=p.next;//从第二数开始与前边的数比较 ListNode r,rN;//用于遍历前部分排序好的链表,确定q指针所指节点插入的位置,每次都从头结点开始 while(q!=null) { r=head; rN=r.next; if(q.val<p.val) { while(rN!=p && rN.val<=q.val)//rN所指值小于q,r和rN都后移 { r=rN; rN=rN.next; }//跳出循环表示找到了q值插入的位置,并修改相应结点的链接 r.next=q; q=q.next; r=r.next; r.next=rN; p.next=q; }else//说明q指针的值小于p,不用修改链接,指针后移 { p=q; q=q.next; } } return head.next; //去掉新建的节点,返回head.next }
相关文章推荐
- Java for LeetCode 147 Insertion Sort List
- leetcode-Insertion Sort List-147
- Leetcode 147 Insertion Sort List
- LeetCode 147:Insertion Sort List
- leetcode 147 Insertion Sort List java 算法
- 【LEETCODE】147- Insertion Sort List [Python]
- LeetCode 147 Insertion Sort List(链表)
- leetcode[147]:Insertion Sort List
- LeetCode147_Insertion Sort List(用插入排序算法对链表进行排序) Java题解
- [LeetCode]147 Insertion Sort List
- LeetCode(147) Insertion Sort List
- [leetcode 147]Insertion Sort List
- LeetCode(147) Insertion Sort List
- LeetCode 147 Insertion Sort List
- leetcode_147 Insertion Sort List
- LeetCode 147 Insertion Sort List
- LeetCode(147) Insertion Sort List
- 【leetcode】147 Insertion Sort List
- leetcode_c++:链表:Insertion Sort List(147)
- LeetCode147—Insertion Sort List