单链表排序---直插法
来源:互联网 发布:苹果4s4g网络 编辑:程序博客网 时间:2024/06/10 09:04
这道题的思路:
(1)首先必须维护当前节点的前指针,
(2)然后还要维护要插入的位置的前后指针,
(3)每个要插入的节点都要从头开始比较。
参考代码:
public ListNode insertionSortList(ListNode head) { //维护插入位置, ListNode p = head; ListNode q = head.next; ListNode r = q; //还有待插入的前后指针 ListNode s = q.next; while (s!=null) { while(s.val>q.val && q.val !=s.val) { p = q; q = q.next; } if (q.val== s.val) { p = head; q = head.next; r = r.next; s = s.next; }else { r.next = s.next; s.next = q; p.next = s; s= r.next; //让p、q回到初始位置进行下一轮 p = head; q = head.next; } }return head;
在eclipse 上面运行的好好的,但是在牛客网的在线编程就不行。
我继续琢磨一下,但是思路是对的
0 0
- 单链表排序---直插法
- 单链表排序(冒泡排序)
- 单链表排序(快速排序、归并排序)
- 单链表排序
- 单链表排序
- 单链表排序
- 【单链表】排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- 单链表排序
- cardview 兼容 5.0以下版本
- Linux内核学习
- thinkphp文件上传失败
- linux学习(1):ssh免密码登录及常见用法
- Redis数据库结构介绍
- 单链表排序---直插法
- php源码之路第六章第三节 (内存使用:申请和销毁)
- Android EditText的属性和方法介绍使用及值得注意的点
- Seaborn-02-颜色板控制
- java 异步回调
- CWnd与HWND的区别与转换
- 二叉树最全的基本操作,你想要到这里都要,初始化,空树、遍历、求前后上下左右兄弟父母祖宗等等等等一切操作
- C练习(四)
- Eclipse导入工程中文乱码问题