1.問題描述:用插入排序對鏈表排序
2.思路:在鏈表中,將小的節點往前插,大就往後插,這樣之後就可以把鏈表按大小順序排好。。
3.通過的代碼:
/**
* Definition of ListNode
* 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 *dummy=new ListNode(0);
while(head!=NULL)
{
ListNode *node=dummy;
while(node->next!=NULL&&node->next->val<head->val){node=node->next;}
ListNode *temp=head->next;
head->next=node->next;
node->next=head;
head=temp;
}
return dummy->next;
}
};
4.感想:因爲老師在羣裏發了這個解題的代碼,自己就改成了C++的模式,就通過了,自己剛開始一直沒看懂代碼的意思,就對有些步驟很難理解,但是自己就像看懂,所以當舍友在討論問題的時候我自己在思考別的題。就是不聽,所以在寫完全部程序之後就開始看自己剛開始寫的但是沒有搞懂的那幾個題,自己現在也都理解,也明白每句的含義,也懂了這個題。