public void intersectIn(PostingsList other) {
		Node<Posting> meCur = this.getHeadNode(), meNext = meCur.next;
		Node<Posting> them = other.getHeadNode().next;
		
		// Note that we can terminate when *either* pointer reaches the end
		while (them != null && meNext != null) {
			if (meNext.value.equals(them.value)) {
				// Keep meNext in the list, advance everything
				meCur = meNext;
				meNext = meCur.next;
				them = them.next;
			} else if (them.value.compareTo(meNext.value) > 0) {
				// meNext pointer is behind, remove it and shift forward
				meCur.next = meNext.next;
				meCur = meNext;
				meNext = meCur.next;
				docIDs.size --;
			} else {
				// them pointer is behind, DON'T remove it but shift it forward
				them = them.next;
			}
		}
		
		if (them == null) {
			// Ignore every element after meCur, make meCur the new tail
			while (meCur != null && meCur.next != null) {
				meCur.next = meCur.next.next;
				docIDs.size --;
			}
		}

	}