[LeetCode]Insertion Sort List
2016-03-29 17:07
489 查看
Sort a linked list using insertion sort.
写个子函数把最后一个节点插入到合适的位置。
注意每次插入后链表值改变了。
写个子函数把最后一个节点插入到合适的位置。
注意每次插入后链表值改变了。
class Solution { public: ListNode* insertionSortList(ListNode* head) { if(head == nullptr) return nullptr; ListNode * pre = new ListNode(0); pre->next = head; //链条的内容随时在改变,写代码时特别注意 int k = 0; while(true){ ListNode *nex = pre; int temp = k; while(temp>0){ nex = nex ->next; //每次遍历,找到最后一个点,注意链表排序后各个点的位置改变了 --temp; } k++; if(nex->next==nullptr) break; else insertList(pre,nex); } return pre->next; } void insertList(ListNode* pre,ListNode *front){//在链条中插入最后的一个点 ListNode* head = pre->next; ListNode* last = front->next; if(head==last) return ; while(head!=last){ if(head->val>last->val){ pre->next = last; front->next = last->next; last->next = head; break; //找到插入点终止循环 } pre = pre->next; head = head->next; } } };
相关文章推荐
- Rxjava-Android资料汇总
- 数据结构(一)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 第二章 历史
- 计算机程序的思维逻辑 (1) - 数据和变量
- 使用Google语音识别引擎(Google Speech API)
- relative,absolute和float的联系与区别
- IOS学习之——自定义的Cell
- stm32 Boot0,Boot1引脚设置
- CC攻击原理及防范方法
- Oracle 10g RAC的负载均衡配置
- (二)内核锁的使用之信号量【转】
- 本地上传预览代码
- SpringMVC基本配置
- scrollTop实例
- eclipse远程提交scala到spark集群问题
- cat > newfile 和 cat << EOF 用法
- 枚举法解决推理问题
- mac地址分类及如何修改mac地址
- 了解RxJava之基础(一)
- android studio关于命令行打包apk