描述
本题是力扣的83. 删除排序链表中的重复元素
考点
-
双指针
题解
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *left = head, *right = head;
while (right != nullptr) {
while (right != nullptr && left->val == right->val) right = right->next;
left->next = right;
left = left->next;
}
return head;
}
};
思路
根据题意,链表已排序,那么重复的元素就一定是连续的;所以我们使用双指针来处理
左指针指向需要留下的元素,右指针作为游标指针
只要右指针的值等于左指针,就一直向右,遇到不同值停下,再将左右指针指向的节点连接起来即可
更多
恭喜你完成本题!
你可以选择继续下一题,或移步至仓库开始更多类型的挑战:https://fi3wey.github.io/
仓库内包含了更多经典案例的逻辑剖析与实现细节,助你在算法的学习之旅上一往无前!
看官若还满意,还请Star一下哟~
关注公众号峰狂算法
,获取最新的刷题指导呀~