力扣c語言實現 147 對鍊錶進行插入排序

2021-10-03 03:20:32 字數 787 閱讀 3018

對鍊錶進行插入排序。

插入排序演算法:

插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。

每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。

重複直到所有輸入資料插入完為止。

示例 1:

輸入: 4->2->1->3

輸出: 1->2->3->4

示例 2:

輸入: -1->5->3->4->0

輸出: -1->0->3->4->5

/**

* definition for singly-linked list.

* struct listnode ;

*/typedef

struct listnode node;

struct listnode*

insertionsortlist

(struct listnode* head)

node *tmphead = head;

node *ptail = head;

node *pcur = head->next;

while

(pcur !=

null

)else

else

//進入這裡,可以確定當前節點的插入範圍即不在頭也不在尾,只能在有序序列中間查詢到它應該插入的位置

else

//得到插入位置,插入}}

}}return head;

}

力扣c語言實現 328 奇偶鍊錶

原題目連線 給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5...

力扣c語言實現 141 環形鍊錶

原題目連線 給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。...

力扣c語言實現 148 排序鍊錶

在 o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 示例 2 輸入 1 5 3 4 0 輸出 1 0 3 4 5 typedef struct listnode node struct listnode sortlist st...