Leetcode 147 對鍊錶進行插入排序

2021-10-23 01:11:21 字數 959 閱讀 3363

步驟如下:

首先定義出pre(每次都從頭開始)(需要乙個dummy)

然後定義出head(標誌已排序的最後乙個)(head->next要排序的那個)

首先head和head->next比較(用if continue)

其次pre和head依次比較

最後處理插入

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

listnode*dummynode=

newlistnode(-

1); dummynode-

>next=head;

listnode*pnode=head;

listnode*pre=

null

;//pre的賦值要在迴圈裡面,因為每輪比較都要從頭開始

while

(pnode!=

null

&&pnode-

>next!=

null

) pre=dummynode;

while

(pre-

>next-

>val>next-

>val)

listnode*temp=pnode-

>next;

pnode-

>next=pnode-

>next-

>next;

temp-

>next=pre-

>next;

pre-

>next=temp;

}return dummynode-

>next;}}

;

Leetcode 147 對鍊錶進行排序

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

LeetCode 147 對鍊錶進行插入排序

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

LeetCode147 對鍊錶進行插入排序

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