劍指offer56 刪除鍊錶中的重複結點

2021-10-20 12:20:26 字數 608 閱讀 7571

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

思路1:

用乙個set來記錄重複的結點

class

solution

listnode* new_phead=

newlistnode(-

1);//這個操作主要是為了防止第乙個就是重複的,因此把頭結點延長乙個

new_phead-

>next=phead;

p=phead;

listnode* np=new_phead;

while

(p)else

//否則兩個指標同時移動

}return new_phead-

>next;

//返回延長頭結點的下乙個}}

;

思路2:不使用額外的空間來實現

class

solution

else

}return new_phead-

>next;}}

;

劍指offer56 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 注意是把重複的刪除,不是刪掉重複的 coding utf 8 class listnode def init self,x self.val x...

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

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 注意如果是頭結點的判斷 另外,每次 next的時候都需要判斷當前節點是否為空 struct listnode class solution 如果...

劍指offer 56 刪除有序鍊錶中的重複結點

56.刪除有序鍊錶中的重複結點 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 借助輔助頭結點,可避免單獨討論頭結點的情況。設定兩個結點 pre 和 cur,當 cur 和 cur.next ...