题目描述:
解题思路:
因为要去除重复元素,我们可以通过set集合来存放不相同的元素。首先我们定义一个cur指针,存放head指针地址。这是因为下面head指针会发生变化。然后set集合先存放链表第一个节点值。然后遍历整个链表,判断这个节点的子节点值是否在set集合已存在。若存在,则把指针指向这个节点的子节点的子节点。若不存在,则把head指针向后移。当head为空或者head的子节点为空时,遍历结束。最后返回cur指针即可。
代码实现:
class Solution {
public ListNode removeDuplicateNodes(ListNode head) {
Set<Integer> set = new HashSet<>();
ListNode cur = head;
if(head != null) set.add(head.val);
while(head != null && head.next != null){
if(!set.add(head.next.val)){
head.next = head.next.next;
}else{
head = head.next;
}
}
return cur;
}
}
执行结果: