Insertion Sort List 【leetcode】
2014-09-17 17:06
501 查看
今天面试第一个笔试通过的公司(去哪儿网),今天早上就空腹去检查胃,喝钡餐,还没吃东西,加上早起,晚上没睡好,最近几天压力大(失眠),精神紧张,面试的时候完全昏昏沉沉,没状态,结果一面就没过。下午写一个链表的插入排序也写了一下午,真是坑爹啊。
胃下垂还要多餐少吃,坑爹。
题目的意思是给你一个链表,让你排序,小的在前面大的在后面(题目你怎么不说啊),而且head这个元素本事 是有值的,就是说head->val等于某个值,而它不仅仅只是一个指针。
自己设置一个哨位节点来指向head,在进行排序
若前面的n个一直有序,我就跳过,到某一个不在有序了,我查找到它应该插入的位置,然后进行插入操作。
胃下垂还要多餐少吃,坑爹。
题目的意思是给你一个链表,让你排序,小的在前面大的在后面(题目你怎么不说啊),而且head这个元素本事 是有值的,就是说head->val等于某个值,而它不仅仅只是一个指针。
自己设置一个哨位节点来指向head,在进行排序
若前面的n个一直有序,我就跳过,到某一个不在有序了,我查找到它应该插入的位置,然后进行插入操作。
//============================================================================ // Name : sort_list.cpp // Author : menglei // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include "stdafx.h" #include <iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; void show(ListNode * h){ while (h != NULL){ cout << h->val << "->"; h = h->next; } cout << endl; } //====================================================== ListNode *insertionSortList(ListNode *head) { ListNode dummy(-1);//哨位 dummy.next = head; if (dummy.next == NULL || dummy.next->next == NULL){ return dummy.next; } ListNode* pre = dummy.next; ListNode * cur = pre->next; while (cur){ if (pre->val <= cur->val){ cur = cur->next; pre = pre->next; } else { ListNode *preinsert = &dummy; ListNode *insert = preinsert->next; while (insert->val < cur->val) { insert = insert->next; preinsert = preinsert->next; } //insert pre->next = cur->next; cur->next = insert; preinsert->next = cur; cur = pre->next; } } return dummy.next; } //========================================================== int main() { ListNode *head; ListNode a(1); ListNode b(3); ListNode c(5); ListNode d(4); ListNode e(3); ListNode f(6); head = &a; a.next = &b; b.next = &c; c.next = &d; d.next = &e; e.next = &f; show(head); ListNode *t; t = insertionSortList(head); show(t); return 0; }
相关文章推荐
- LeetCode 147 Insertion Sort List(链表插入排序)
- leetcode147~Insertion Sort List
- Leetcode:Insertion Sort List
- C实现 LeetCode->Insertion Sort List(排序)(单链表)
- Insertion Sort List (LeetCode)
- 【Leetcode】Insertion Sort List
- [LeetCode]Insertion Sort List
- [LeetCode] Insertion Sort List
- leetcode Insertion Sort List(*)
- [LeetCode] Insertion Sort List
- [leetcode] Insertion Sort List
- LeetCode--insertion-sort-list
- 【leetcode】【单链表】【147】Insertion Sort List
- 59_leetcode_Insertion Sort List
- LeetCode——Insertion Sort List
- Insertion Sort List Leetcode Python
- (leetcode)Insertion Sort List
- leetcode Insertion Sort List
- (Leetcode 147)Insertion Sort List
- [leetcode] Insertion Sort List