设计一种方法,从无序链表中删除重复项。
样例
样例 1:
输入:1->2->1->3->3->5->6->3->null
输出:1->2->3->5->6->null
样例 2:
输入:2->2->2->2->2->null
输出:2->null
挑战
如果没有临时缓冲区,如何解决这一问题?
解题思路1:
利用HashSet来去重。时间复杂度O(n),空间复杂度O(n)
/**
* Definition for ListNode
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/**
* @param head: The first node of linked list.
* @return: Head node.
*/
public ListNode removeDuplicates(ListNode head) {
// write your code here
Set<I