问题描述:用插入排序对链表排序。
样例
Given 1->3->2->0->null
, return 0->1->2->3->null
解题思路:取出系统链表的第一个元素,将他放到新的链表中,在进行第二个元素,比较后将第二个元素插到新的链表中,依次循环,直到系统链表指针为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 *p;
p= new ListNode;
while (head!=NULL)
{
ListNode *q = p;
while (q->next!=NULL&& q->next->val < head->val)
{
q=q->next;
}
ListNode *x = head->next;
head->next = q->next;
q->next = head;
head=x;
}
return p->next;
}
};
个人感想:老师的代码使用java写的。