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++的模式,就通过了,自己刚开始一直没看懂代码的意思,就对有些步骤很难理解,但是自己就像看懂,所以当舍友在讨论问题的时候我自己在思考别的题。就是不听,所以在写完全部程序之后就开始看自己刚开始写的但是没有搞懂的那几个题,自己现在也都理解,也明白每句的含义,也懂了这个题。