LintCode 鍊錶插入排序

2021-07-29 18:44:35 字數 530 閱讀 5962

用插入排序對鍊錶排序

樣例

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 ...