刪除鍊錶中重複的節點(包括節點本身)

2021-10-08 01:50:49 字數 761 閱讀 6119

解題思路是在遍歷單鏈表的時候,檢查當前節點與下一點是否為相同值,如果相同,繼續查詢祥同值的最大長度,然後指標改變指向

由於有可能第乙個節點就是重複的節點從而被演算法刪除,所以在定義的時候定義乙個新的頭節點,在返回的時候返回這個節點的next。

using system.collections.generic;

/*public class listnode

}*//*在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,

重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5*/

class

solution

listnode vhead=

newlistnode(0

);//由於phead有可能會被刪除,所以這裡定義乙個不會被刪除的節點vhead

vhead.next=phead;

listnode pre = vhead;

listnode cur=phead;

while

(cur!=

null

) cur=cur.next;

pre.next=cur;

}else

}return vhead.next;

}}

刪除鍊錶中重複的節點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 這個題目首先考慮到頭結點也可能是重複的節點,所以需要設定乙個頭結點之前的節點。之後需要3個指標 pre,cur和next struct...

刪除鍊錶中重複的節點。

本題源自劍指offer 要刪除重複的節點,既要保留重複節點的前乙個節點和後乙個節點,然後讓前乙個節點指向後乙個節點。listnode deleteduplication listnode phead if flag if pre null else p pnext else return phead...

刪除鍊錶中重複的節點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 方法一,先對重複節點做標記,然後將有相同值的節點都刪除。如下 class solution while phead null hash phea...