劍指offer 刪除連結串列中重複的結點

2022-11-24 15:21:38 字數 1038 閱讀 4514

在一個排序的連結串列中,存在重複的結點,請刪除該連結串列中重複的結點,重複的結點不保留,返回連結串列頭指標。 例如,連結串列1->2->3->3->4->4->5 處理後為 1->2->5

思路:直接處理

1/*2

struct listnode 8};

9*/10class

solution

25//

如果有重複,那麼cur指向下一個第一次不重複的節點

26if

(flag) else35}

36return res->next;37}

38 };

以上**記憶體未**,更新版本如下:

1/*2

struct listnode 8};

9*/10class

solution

30//

如果有重複,那麼cur指向下一個第一次不重複的節點

31if

(flag) else45}

46return res->next;47}

48 };

遞迴解法

1

class

solution

15return

deleteduplication(cur);

16 } else20}

21 };

更新版本如下:

1/*2

struct listnode 8};

9*/10class

solution

17if (phead != nullptr && phead->next ==nullptr)

20 listnode *cur = phead->next;

21if (cur->val == phead->val)

32return

deleteduplication(cur);

33 } else

37}

38 };

劍指offer 矩陣中的路徑

請設計一個函式,用來判斷在一個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意一個格子開始,每一步可以在矩陣中向左,向右,向上,向下移動一個格子。如果一條路徑經過了矩陣中的某一個格子,則該路徑不能再進入該格子。例如下面的矩陣包含了一條 bfce 路徑。因為題目中的矩陣是用一維陣列來...

劍指offer 陣列中的逆序對

劍指 offer 51.陣列中的逆序對 在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 import org.junit.jupiter.api.te...

劍指offer 資料流中的中位數

如何得到一個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用insert 方法讀取資料流,使用getmedian 方法獲取當前讀取資料的中位數。使用堆排序思想 建立一...