题解 | #删除有序链表中重复的元素-I#
删除有序链表中重复的元素-I
https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if (!head) return head;
auto cur = head; // 表示新链表最后一个点
for (auto p = head->next; p; p = p->next) { // 从第二个点开始遍历
if (p->val != cur->val) { // 旧链表如果不等于新链表就加进来
cur = cur->next = p; // 此时p就变成了我们新链表的点所以也要用cur存下来新进来的点
}
}
cur->next = NULL;
return head;
}
};