public Node<Integer> removeDup2(Node<Integer> head) {
		if (head == null)
			return null;

		int checker = 0;
		Node<Integer> p = head;
		int val = p.data - 0;
		checker |= (1 << val);
		while (p.next != null) {
			val = p.next.data - 0;
			if ((checker & (1 << val)) != 0) {
				p.next = p.next.next;
			} else {
				checker |= (1 << val);
				p = p.next;
			}
		}
		return head;
	}