LeetCode83-除排序鏈表中的重複元素

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;  
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章