LeetCode147 對鍊錶進行插入排序

2021-10-03 11:14:18 字數 950 閱讀 8803

/*

對鍊錶進行插入排序

*//*

先new乙個虛擬的頭結點pre,讓tail指向第乙個節點,讓node指向第二個節點。

pre tail node

3 -> 6 -> 5 -> 8 -> null

如果發現node->val > tail->next,

那麼tail和node都往後挪一位

pre tail node

3 -> 6 -> 5 -> 8 -> null

如果node->val < tail->val的話則:

從pre的next開始,找到第乙個大於node->val的值

pre tail node

3 -> 6 -> 5 -> 8 -> null

cur cur

當cur指向這裡的時候,此時cur->next大於node->next,所以這個時候,

讓tail->next指向node的next,然後讓node的next指向cur的next,

然後讓cur的next指向node,此時交換完畢,之後更新一下節點的位置

,讓node等於tail的next就可以

*/class

solution

tail-

>next=node-

>next;

node-

>next=cur-

>next;

cur-

>next=node;

node=tail-

>next;

}else

} listnode *ret=pre-

>next;

delete pre;

return ret;}}

;

Leetcode 147 對鍊錶進行排序

對鍊錶進行插入排序。插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 到了鍊...

LeetCode 147 對鍊錶進行插入排序

插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排序只從輸入資料中移除乙個待排序的元素,找到它在序列中適當的位置,並將其插入。重複直到所有輸入資料插入完為止。方法1 嚴格按照演算法說明,在原始列表中進行操作,利用4個鍊錶指標分別表示當前元...

LeetCode147 對鍊錶進行插入排序

對鍊錶進行插入排序。插入排序的動畫演示如上。從第乙個元素開始,該鍊錶可以被認為已經部分排序 用黑色表示 每次迭代時,從輸入資料中移除乙個元素 用紅色表示 並原地將其插入到已排好序的鍊錶中。插入排序演算法 插入排序是迭代的,每次只移動乙個元素,直到所有元素可以形成乙個有序的輸出列表。每次迭代中,插入排...