文章目录
- Tag
- 题目来源
- 解题思路
- 方法一:比较相邻两节点
- 写在最后
Tag
【遍历】【链表】【2024-01-14】
题目来源
83. 删除排序链表中的重复元素
解题思路
方法一:比较相邻两节点
思路
比较两个相邻的节点,如果下一个节点值和当前节点值一样,则跳过下一个节点将当前节点和下一个节点的下一个节点相连。
迭代比较相邻的节点,直到到达链表尾部。
算法
/*** 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;ListNode *curr = head;while (curr->next) {if (curr->val == curr->next->val) {curr->next = curr->next->next;}else {curr = curr->next;} }return head;}
};
复杂度分析
时间复杂度: O ( n ) O(n) O(n), n n n 是链表的长度。
空间复杂度: O ( 1 ) O(1) O(1)。
写在最后
如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。
如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。
最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。