LeetCode(83): 删除排序链表中的重复元素
2023-09-14 08:59:35 时间
Easy!
题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2 输出: 1->2
示例 2:
输入: 1->1->2->3->3 输出: 1->2->3
解题思路:
移除有序链表中的重复项需要定义个指针指向该链表的第一个元素,然后第一个元素和第二个元素比较,如果重复了,则删掉第二个元素,如果不重复,指针指向第二个元素。这样遍历完整个链表,则剩下的元素没有重复项。
C++解法一:
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode *deleteDuplicates(ListNode *head) { 12 if (!head || !head->next) return head; 13 14 ListNode *start = head; 15 while (start && start->next) { 16 if (start->val == start->next->val) { 17 ListNode *tmp = start->next; 18 start->next = start->next->next; 19 delete tmp; 20 } else start = start->next; 21 } 22 return head; 23 } 24 };
相关文章
- leetcode 1019. 链表中的下一个更大节点 js实现
- LeetCode笔记:Weekly Contest 308
- ☆打卡算法☆LeetCode 206. 反转链表 算法解析
- LeetCode笔记:Biweekly Contest 86
- 知乎搬运:刷LeetCode经常心态崩,是我智商不够吗?
- LeetCode周赛283,第一名送iWatch,少年你参赛了吗?
- leetcode-26删除有序数组中的重复项(双指针)「建议收藏」
- LeetCode笔记:Biweekly Contest 91
- LeetCode排序链表C++解法(详解)
- 图解剑指 Offer II 024. 反转链表(LeetCode)
- leetcode 141. 环形链表 js 实现
- LeetCode 237. 删除链表中的节点
- LeetCode 657. 机器人能否返回原点
- LeetCode 283. 移动零
- leetcode-234. 回文链表
- leetcode-142. 环形链表 II
- leetcode546_leetcode 5
- leetcode刷题(127)——1575. 统计所有可行路径
- LeetCode周赛334,我还以为是状态恢复了,没想到是题变简单了……
- JavaScript刷LeetCode链表篇
- 19道leetcode二分查找算法
- JavaScript刷LeetCode拿offer-链表篇
- JavaScript刷LeetCode-贪心算法
- 用javascript分类刷leetcode--双指针(图文视频讲解)
- LeetCode 82:删除排序链表中的重复元素 II
- leetcode 链表初探 21. merge two sorted lists
- LeetCode-206-反转链表
- 【leetcode 206】 反转链表(简单)
- 【Leetcode-滑动窗口问题】
- LeetCode 环形链表 II(C语言)
- [数据结构]链表OJ(leetcode)
- LeetCode(一)——无重复字符的最长子串