/**
* 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 == nullptr) {
return head;
}
// 创建一个指针,从头节点开始遍历
ListNode* current = head;
// 只要当前节点和下一个节点都存在,就继续循环
while (current != nullptr && current->next != nullptr) {
// 如果当前节点的值和下一个节点的值相同
if (current->val == current->next->val) {
// 跳过(删除)下一个节点
// 将当前节点的 next 指向 下下个节点
current->next = current->next->next;
} else {
// 如果值不同,移动到下一个节点
current = current->next;
}
}
// 返回修改后链表的头节点
return head;
}
};
83. 删除排序链表中的重复元素
最新推荐文章于 2025-08-30 23:07:14 发布