protected Node<E> addLeaf (E e, Node<E> leftLeaf, Node<E> rightLeaf) {
		assert (leftLeaf == null || leftLeaf.isLeaf) 
		&& (rightLeaf == null || rightLeaf.isLeaf) :
			"leftLeaf and rightLeaf must be leafs";
	
		Node<E> n = new Node<E>(e, leftLeaf, rightLeaf);
		
		if (n.left != null) {
			n.left.right = n;
		}
		else {
			minNode = n;
		}
		
		if (n.right != null) {
			n.right.left = n;
		}
		else {
			maxNode = n;
		}
		
		return n;
	}