public void remove(int position) {
	SListNode<T> currentNode, previousNode;
	if ((position < 0) || (head == null) || position > size - 1) {
		return;
	} else {
		if (position == 0) {
			head = head.next;
			size--;
			if (size == 0)
				tail = null;
			return;
		}
		currentNode = previousNode = head;
		while (position > 0) {
			previousNode = currentNode;
			currentNode = currentNode.next;
			if (currentNode == null) {
				return;
			}
			position--;
		}
		previousNode.next = currentNode.next;
		size--;
	}
  }