微头条丨#yyds干货盘点# LeetCode程序员面试金典:移除重复节点

2022-12-06 19:16:21 来源:51CTO博客


(资料图片)

题目:

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

示例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) {        if (head == null) {            return head;        }        Set occurred = new HashSet();        occurred.add(head.val);        ListNode pos = head;        // 枚举前驱节点        while (pos.next != null) {            // 当前待删除节点            ListNode cur = pos.next;            if (occurred.add(cur.val)) {                pos = pos.next;            } else {                pos.next = pos.next.next;            }        }        pos.next = null;        return head;    }}

标签: 删除节点

上一篇:世界观点:问题解决系列:ftp并发读取文件内容时,会出现ftp连接数过多,进而导致读取文件出现问题
下一篇:天天微头条丨#yyds干货盘点# 名企真题专题:最大乘积