Essentially, the list and element being searched for are passed to the function. The function should return the position of the element in the list. I've attached what I have tried. In the test program which has 11 elements by the time this function is called, 1 is always the result if the element is within the list, and it correctly returns -1, if it is not.

```
template <class T>
int getPosition(Node<T>* head, T element)
{
    int pos = 1;

    if (head == nullptr) {
        return -1;
    }

    if (head->data == element) {
        return pos;
    }
    return getPosition(head->next, element);
}

```