31 刪除鍊錶中重複元素

2021-09-24 09:50:02 字數 801 閱讀 9586

解析:

1.保留重複的結點

例:1->1->2

①比較當前結點的值與下一結點的值,如果相同,則當前結點指向下一結點的下一結點;

②如果當前結點的值與下一結點的值不同,則當前結點移動到下一結點。

③根據上述思路,由於當前結點的值1和下一結點的值1相同,則當前結點指向下一結點的下一節點,即1->2。

public listnode deleteduplicates(listnode head) 

listnode tmp = head;

while(head.next != null)else

}return tmp;

}

2.去除重複的結點

①首先定義乙個頭結點連線鍊錶,再定義兩個指標p1和p2分別指向這個頭結點和原先的頭結點;

②如果p2指向的結點值等於下一節點的值,則繼續移動p2到下一結點直到不滿足前面的條件,再將p1指向的結點連線上p2指向的結點,這一步相當於去除重複的元素;

③如果p2指向的結點值不等於下一節點的值,則同時繼續移動兩個指標到下一結點。

public listnode deleteduplication2(listnode phead)

//第乙個指標指向的結點連線上非重複的結點,相當於去除重複結點

ptr1.next = ptr2;

}else

}return first.next;

}

鍊錶刪除重複元素1,刪除重複元素2,

刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...

刪除排序鍊錶中重複元素

示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5 示例 2 輸入 1 1 1 2 3 輸出 2 3 照例使用三個指標來 struct listnode deleteduplicates struct listnode head else 沒有重複的就正常移動 示例 1 輸入 1 1 2 ...

刪除鍊錶中的重複元素

昨晚在參加蘭亭集勢的筆試時,看到了這樣乙個題目。大致意思就是給出乙個單鏈表,鍊錶中有重複的元素,需要刪除重複的元素。如 1 2 3 5 4 3 7,刪除重複元素後變成1 2 3 5 4 7。思路其實還蠻簡單 建立三個工作指標p,q,r,然後p 遍歷 全表。p每到乙個結點,q就從這個結點往後遍歷,並與...