单向链表插入排序 Java
来源:互联网 发布:log4j输出mybatis sql 编辑:程序博客网 时间:2024/06/06 04:45
游动指针h ; 待插入节点指针pt
节点插入关键:h.next = pt; 不可能是h = pt, 链到指针的末尾没用呀,要链到节点末尾
默认无头结点,无头结点的思路:
三种可能
1. 比较头部
2. 循环比较中间
3. 追加末尾
为何比较头节点:因为循环中间部分的时候没有比较头节点
整体代码:while (h.next != null) { //比较有序部分
package linkedList;/** * 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) {if (head == null || head.next == null)return head;ListNode c = head.next; //未排序游动指针Chead.next = null; ListNode pt, h; //pt:临时节点指针,h:已排序部分游动指针while (c != null) {pt = c;c = c.next;pt.next = null;if (head.val > pt.val) { //比较头部pt.next = head;head = pt;continue;}h = head;while (h.next != null) { //比较有序部分if (h.next.val > pt.val) {pt.next = h.next;h.next = pt;break;}h = h.next;}if (h.next == null) { //追加末尾h.next = pt;}}return head;}}
0 0
- 单向链表插入排序 Java
- 单向链表的插入排序
- 单向链表插入
- 无序单向链表的插入排序(升序)
- [LeetCode] Insertion Sort List 单向链表插入排序
- 单向链表归并排序 Java
- 单向链表排序
- 单向链表插入实现
- 数据结构Java实现 --单向链表的插入和删除
- Java数据结构03----单向链表的插入和删除
- 不带头结点的单向链表排序——插入排序(C语言)
- 算法与数据结构-单向链表的直接插入排序和快速排序
- 单向链表:在插入值的同时要进行排序
- 数据结构----单向链表之 新建-插入-删除-排序(选择法)-合并-删除-销毁
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- 数据结构之单向链表操作1-(插入,删除,交换,反转,排序等操作)
- 单向链表的创建,插入,删除,排序,查找---新人贴
- 单向动态链表的建立、插入、删除、排序和保存
- (摘抄笔记)人脸识别必读的N篇文章
- UVA 代码说明
- 内存管理内幕 - 动态分配的选择、折衷和实现
- 项目阶段学习总结(设计集合框架、JPA、个人思路)
- hdu Examining the Rooms
- 单向链表插入排序 Java
- dedecms支持weight排序功能修改
- LayoutInflater作用及使用
- IOS声音调用
- Linux根目录下各个目录的作用
- Panel Paint事件
- jquery调用方法
- 微软2014年实习生在线机试第二题及解法
- fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题