58 刪除鍊錶中重複的節點

2022-08-20 17:42:09 字數 665 閱讀 1809

題目描述:

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。

例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

思路分析:

兩種思路:

第一種方法不使用遞迴,設定乙個指標讓其指向鍊錶的頭結點,我們從頭節點開始遍歷,要刪除重複節點就是判斷當前節點的值是否和下乙個節點值相等,如果是則往下遍歷,直到遇到第乙個不相等的節點,新的煉表頭就從該點開始,然後重複上面的操作找到下乙個不重複的節點。

第二種方法就是使用遞迴,思路和上面的一樣。

**:方法一:

/*public class listnode }*/

public class solution

last.next=pnode;

}else

}return first.next;

}}

方法二:

/*

public class listnode }*/

public class solution

return deleteduplication(pnode); //找到第乙個不重複的點開始遞迴。

}else

}}

鍊錶 刪除鍊錶中重複的節點

刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...

鍊錶 刪除鍊錶中重複的節點

刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...

刪除鍊錶中重複的節點

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