面试题 02.01:移除重复节点

简介: 面试题 02.01:移除重复节点

题目

题目链接

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

示例1:

输入:[1, 2, 3, 3, 2, 1]
 输出:[1, 2, 3]

示例2:

输入:[1, 1, 1, 1, 2]
 输出:[1, 2]

解题

方法一:哈希

class Solution {
public:
    ListNode* removeDuplicateNodes(ListNode* head) {
        unordered_set<int> set;
        ListNode* pre=nullptr;
        ListNode* cur=head;
        while(cur){
            if(set.count(cur->val)){
                pre->next=cur->next;
                cur=cur->next;
            }
            else{
                set.insert(cur->val);
                pre=cur;
                cur=cur->next;
            }
        }
        return head;
    }
};
相关文章
LeetCode | 面试题 02.02. 返回倒数第 k 个节点
LeetCode | 面试题 02.02. 返回倒数第 k 个节点
|
9月前
【面试必刷TOP101】删除链表的倒数第n个节点 & 两个链表的第一个公共结点
【面试必刷TOP101】删除链表的倒数第n个节点 & 两个链表的第一个公共结点
32 0
|
2月前
|
算法
面试题 02.03:删除中间节点
面试题 02.03:删除中间节点
17 0
|
2月前
|
算法
面试题 02.02:返回倒数第 k 个节点
面试题 02.02:返回倒数第 k 个节点
20 0
|
2月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_36 树节点
「SQL面试题库」 No_36 树节点
|
2月前
剑指Offer LeetCode 面试题22. 链表中倒数第k个节点
剑指Offer LeetCode 面试题22. 链表中倒数第k个节点
29 0
|
2月前
|
C++
剑指Offer LeetCode 面试题18. 删除链表的节点
剑指Offer LeetCode 面试题18. 删除链表的节点
27 0
Java 最常见的面试题:zookeeper 怎么保证主从节点的状态同步?
Java 最常见的面试题:zookeeper 怎么保证主从节点的状态同步?
|
C++
剑指Offer - 面试题22:链表中倒数第K个节点
剑指Offer - 面试题22:链表中倒数第K个节点
57 0
|
机器学习/深度学习
剑指Offer - 面试题18-1:删除链表的节点
剑指Offer - 面试题18-1:删除链表的节点
64 0
剑指Offer - 面试题18-1:删除链表的节点