LeetCode83-除排序鏈表中的重複元素
最近全國疫情嚴重,待在家裏沒事幹,馬上又要準備春招了,最近刷刷題,記錄一下!再說一句,武漢加油,大家出門記得戴口罩!
1、題目
給定一個排序鏈表,刪除所有重複的元素,使得每個元素只出現一次。
示例 1:
輸入: 1->1->2
輸出: 1->2
示例 2:
輸入: 1->1->2->3->3
輸出: 1->2->3
2、思路
分兩種情況去寫代碼。
情況一:如果下一個節點的值和當前節點的值相同,則刪除下一個節點
情況二:如果下一個幾點的值和當前節點的值不同,則指針移到下一個節點。
3、代碼
c++
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
auto cur=head;
while(cur)
{
//下一個節點的值和當前節點的值相同,則刪除下一個節點
if(cur->next&&cur->val==cur->next->val)
{
cur->next=cur->next->next;
}
//下一個幾點的值和當前節點的值不同,則指針移到下一個節點。
else cur=cur->next;
}
return head;
}
};
Java
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode cur=head;
while(cur!=null)
{
//下一個節點的值和當前節點的值相同,則刪除下一個節點
if(cur.next!=null&&cur.val==cur.next.val)
{
cur.next=cur.next.next;
}
//下一個幾點的值和當前節點的值不同,則指針移到下一個節點。
else cur=cur.next;
}
return head;
}
}