Insertion Sort List
2014-06-11 12:59
148 查看
Sort a linked list using insertion sort.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *insertionSortList(ListNode *head)
{
if(head == NULL || head->next == NULL)
return head;
vector<int> vec;
ListNode *p = head;
while(p != NULL)
{
vec.push_back(p->val);
p = p->next;
}
for(int i = 1; i < vec.size(); i++)
{
int tmp = vec[i];
int j;
for(j = i; j > 0 && tmp < vec[j-1]; j--)
vec[j] = vec[j-1];
vec[j] = tmp;
}
p = head;
for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++, p = p->next)
p->val = *it;
return head;
}
};
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *insertionSortList(ListNode *head)
{
if(head == NULL || head->next == NULL)
return head;
vector<int> vec;
ListNode *p = head;
while(p != NULL)
{
vec.push_back(p->val);
p = p->next;
}
for(int i = 1; i < vec.size(); i++)
{
int tmp = vec[i];
int j;
for(j = i; j > 0 && tmp < vec[j-1]; j--)
vec[j] = vec[j-1];
vec[j] = tmp;
}
p = head;
for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++, p = p->next)
p->val = *it;
return head;
}
};
相关文章推荐
- LeetCode OJ - Insertion Sort List
- Insertion Sort List | leetcode
- LeetCode | Insertion Sort List
- [LintCode] Insertion Sort List
- Insertion Sort List
- Insertion Sort List and Binary Tree Paths
- LeetCode:Insertion Sort List
- LeetCode—Insertion Sort List
- leetcode 之 Insertion Sort List
- LeetCode题目5:Insertion Sort List
- LeetCode Insertion Sort List
- Insertion sort list
- leetcode Insertion Sort List(*)
- Leetcode Insertion Sort List 解题报告
- [Leetcode Solution]Insertion Sort List
- LeetCode problem 5: Insertion Sort List
- LeetCode--insertion-sort-list
- Insertion Sort List
- leetcode Insertion Sort List
- Leetcode-Insertion Sort List