83. Remove Duplicates from Sorted List
83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
思路:只要相等就不断head -> next等于下一个元素。直到不相等为止。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(head == nullptr){ return nullptr; } ListNode* dummyNode = new ListNode(-1); dummyNode -> next = head; head = dummyNode; while(head -> next != nullptr && head -> next -> next != nullptr){ if(head -> next -> val == head -> next -> next -> val){ head -> next = head -> next -> next; } else{ head = head -> next; } } return dummyNode -> next; } };