用插入排序對鍊錶排序
樣例
given 1->3->2->0->null, return 0->1->2->3->null
解題思路:用temp移動,指向head指向的下乙個結點。用while迴圈判斷指標指向的下乙個位址不為空,如果新建的鍊錶指向的結點的值小於原鍊錶指向的結點的值,就向下移動,head指向的結點斷鏈,把該結點放在node的那個鍊錶後面,head再指向下乙個結點,temp指向head指向的下乙個結點,以此類推,直至鍊錶排序正常。
關鍵**:listnode*insertionsortlist(listnode *head)
listnode *temp=head->next;
head->next=node->next;
node->next=head;
head=temp;
return dummy->next;
做題感想:剛開始不會做,看了**之後也不太會,就找同學講了一下,然後自己又畫圖看了一遍,終於懂了,這段**剛開始理解的時候比較難。
LintCode 鍊錶插入排序
1.描述 用插入排序對鍊錶排序 樣例 given1 3 2 0 null,return0 1 2 3 null 2.分析 插入排序是十分常見的排序方式之一,類似於陣列的插入排序,此題是關於鍊錶的插入排序。原題給定乙個以head為頭節點的鍊錶,下面再新建乙個有序的dummy鍊錶,通過把head鍊錶 中...
lintcode練習 173 鍊錶插入排序
用插入排序對鍊錶排序 given1 3 2 0 null,return0 1 2 3 null 實現 definition of listnode class listnode object def init self,val,next none self.val val self.next nex...
鍊錶插入排序
void insertsort list sortascount,node node else p prior next q q next p int sortwithinsetmethod list sortasdata wchar pp p data if isnum pp int i 0 i ...