解題思路:把第乙個當做有序的結點,剩下的一次拿下來頭插或者尾插或者中間插三種情況,當你拿下來的時候一定要記得保留下乙個結點位址,否則你插完乙個之後就找不到下乙個了。
*///只有第乙個數有序,其他的數只要比他小,就不斷的往前插
//但是這個題所畫的**是不適合鍊錶的插入的,這個**只適合陣列的插入
typedef
struct listnode node;
struct listnode*
insertionsortlist
(struct listnode* head)
else
else
}//這裡從迴圈裡面出來可能有兩種情況,一種是break,一種是sortcur為null,所以需要判斷一下
//尾插
if(sortcur ==
null)}
cur = next;
}return sorthead;
}
leetcode筆記 147對鍊錶進行插入排序
題目 插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。示例 1 輸入 4 2 1 3 輸出 1 2 3 4示例 2 輸入 1 5...
Leetcode 147 對鍊錶進行排序
對鍊錶進行插入排序。插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 到了鍊...
LeetCode 147 對鍊錶進行插入排序
插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。方法1 嚴格按照演算法說明,在原始列表中進行操作,利用4個鍊錶指標分別表示當前元...