劍指Offer(五十六) 刪除鍊錶中重複的結點

2021-09-12 17:17:52 字數 749 閱讀 6514

上午刷題時,之前一道很簡單的題寫第二遍時卡住了。。。看來還是沒理解透徹,題目為劍指offer(五十六):刪除鍊錶中重複的結點。

鍊錶刪除類題目總結/

心得

coding就是乙個思路轉化成**的過程,邏輯要清晰,善於用三種邏輯語句,卡在都想用pre = cur;cur = aft;語句來繼續遍歷,但如果刪除重複後其實pre是不用移動的,遂if else考慮後清晰很多,if(刪除重複)用cur = aft->next;,else。

/*

struct listnode

};*/

class

solution

//既然在有重複時pre不需移動,那就分兩種情況向後遍歷

else

}return phead;}}

;

模擬刪除值為x的元素

printlist函式見(簡潔的鍊錶建立/)

void

delete_mutix

(listnode* head,

int x)

else

pre-

>next = aft;

cur = aft;

}else

}printlist

(head)

;return

;}

劍指Offer第五十六題 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路 這裡想了蠻久,實際原理不難,就是利用 pre,p,post三個結點,分別記錄,如果一直重複,就找到不重複的數,這裡post表示尋找不同的數...

劍指Offer 鍊錶 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點,返回刪除後的鍊錶的頭節點。解題思路 演算法流程 複雜度分析 實現 definition for singly linked list.class listnode def init self,x self.val x self.ne...

劍指offer 鍊錶 刪除鍊錶中的重複節點

題目在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 思路一 使用linkedlist儲存不重複節點,重構鍊錶 分析評價 這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況...