private static NodeWith2Ptr deepCopy(NodeWith2Ptr n){
		HashMap<NodeWith2Ptr, NodeWith2Ptr> m = new HashMap<NodeWith2Ptr, NodeWith2Ptr>();
		NodeWith2Ptr h = null;
		NodeWith2Ptr curr = h;
		while(n!=null){
			if(h==null){
				h = new NodeWith2Ptr(n.v);
				h.arbitrary = n.arbitrary;
				curr = h;
			} else {
				curr.next = new NodeWith2Ptr(n.v);
				curr.next.arbitrary = n.arbitrary;
				curr = curr.next;
			}
			m.put(n, curr);
			n=n.next;
		}
		curr = h;
		while(curr!=null){
			curr.arbitrary = m.get(curr.arbitrary);
			curr = curr.next;
		}
		return h;
	}