Вы не используете возвращаемое значение из функции.
case 'M':
case 'm':
Mylist.findMaxNode();
break;
Для начала функция maxNode
должна быть статической c функцией-членом и объявлена в закрытом разделе класса. Это вспомогательная функция, которая вызывается под капотом функцией findMaxNode
.
private:
static int maxNode(listNode *p);
. В свою очередь, функция findMaxNode
должна быть постоянной функцией-членом
int findMaxNode() const;
Вы должны решить, что возвращать из функции, когда список пуст. В противном случае функция вызовет неопределенное поведение при вызове пустого списка.
Предположим, что в этом случае функция возвращает 0.
Тогда функция может выглядеть следующим образом
int LinkedList::maxNode( const listNode *p )
{
return listNode == nullptr ? 0 : std::max( { listNode->val, maxNode( listNode->next ) } );
}
Вам нужно будет включить заголовок
#include <algorithm>
Тогда вы можете написать, например,
case 'M':
case 'm':
std::cout << "The maximum value is " << Mylist.findMaxNode() << '\n';
break;