解析:
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就從這個結點往後遍歷,並與...