描述
用插入排序对链表排序
您在真实的面试中是否遇到过这个题?
是
样例
Given 1->3->2->0->null
, return 0->1->2->3->null
/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The head of linked list.
*/
ListNode * insertionSortList(ListNode * head) {
// write your code here
ListNode * m_listNode=new ListNode(0);
while(head!=NULL){
ListNode * temNode=m_listNode;
while(temNode->next!=NULL&&temNode->next->val<head->val)
temNode=temNode->next;
ListNode * temp=head->next;
head->next=temNode->next;
temNode->next=head;
head=temp;
}
return m_listNode->next;
}
};