public void delete(int index) {
		assert 0 <= index && index < length;

		DNode previousNode = (index - 1 >= 0) ? getNode(index - 1) : null;
		DNode deleteNode = (previousNode != null) ? previousNode.next : getNode(index);
		DNode nextNode = (deleteNode != null) ? deleteNode.next : null;

		if (previousNode != null)
			previousNode.next = nextNode;

		if (nextNode != null)
			nextNode.previous = previousNode;

		if (index == 0)
			this.front = nextNode;

		if (index == length - 1)
			this.back = previousNode;

		length--;
	}