public void reverseList() {
		// check if first three nodes exist before while-loop
		if (this.start == null || this.start.getTail() == null || this.start.getTail().getTail() == null) {
			return;
		}
		// separate case for start node
		Node<T> secondNode = this.start.getTail();
		Node<T> thirdNode = secondNode.getTail();
		secondNode.setTail(this.start);
		this.start.setTail(null);

		// set final definitions
		Node<T> currentNode = thirdNode;
		Node<T> previousNode = secondNode;

		while (currentNode.getTail() != null) {
			Node<T> nextNode = currentNode.getTail();
			currentNode.setTail(previousNode);
			previousNode = currentNode;
			currentNode = nextNode;
		}
		// since loop stops before last node
		currentNode.setTail(previousNode);
		this.start = currentNode;
	}