C++ 这是传递int num时创建搜索函数的正确方法吗?使用链表库

C++ 这是传递int num时创建搜索函数的正确方法吗?使用链表库,c++,C++,头文件: 该程序将以 名为“cmd.txt”的文本文件,用于指示要运行的操作。我们的程序应该实现一个C++类,用来表示链表。 搜索应该看起来更像: node* LL::Search(int num) { node* current = head; while (current != null) { if (current->val == num) { return current; }

头文件:

该程序将以
名为“cmd.txt”的文本文件,用于指示要运行的操作。我们的程序应该实现一个C++类,用来表示链表。

搜索应该看起来更像:

node* LL::Search(int num)
{
    node* current = head;
    while (current != null)
    {
        if (current->val == num)
        {
            return current;
        }
        current = current->next;
    }
    return null;
}

这是正确的格式

node* LL::search(int num)
    {
        node* newNode = new node;
        newNode = head;
        while (newNode->next != NULL)
        {
            if (newNode->val == num) 
            {
                return newNode;
            }
        newNode = newNode->next;
        }
        return NULL;
    }

所以您想使用库提供的链表或您实现的链表?whilecurNode==NULL:这应该做什么?您的代码有问题吗?void LL:search看起来是错误的,因为它被声明为node*search,而使用一个冒号是完全错误的。你是对的,我刚刚在所有函数中都发现了这一点。当前节点是传递num值的节点,因此只要num值等于curNode且不为NULL,就继续。
node* LL::Search(int num)
{
    node* current = head;
    while (current != null)
    {
        if (current->val == num)
        {
            return current;
        }
        current = current->next;
    }
    return null;
}
node* LL::search(int num)
    {
        node* newNode = new node;
        newNode = head;
        while (newNode->next != NULL)
        {
            if (newNode->val == num) 
            {
                return newNode;
            }
        newNode = newNode->next;
        }
        return NULL;
    }