public AStarNode insert(final AStarNode toInsert) {
		if (this.min != null) {
			toInsert.left = this.min;
			toInsert.right = this.min.right;
			this.min.right = toInsert;
			toInsert.right.left = toInsert;
			if (toInsert.cost < this.min.cost) {
				this.min = toInsert;
			}
		} else {
			this.min = toInsert;
		}
		++this.n;
		return toInsert;
	}