C++ C++;链表移除和移除功能

C++ C++;链表移除和移除功能,c++,linked-list,C++,Linked List,我想知道如何创建一个带有remove(int num)和removeback(int num)的链表?是否使用prepend中提供的相同格式 #include "ll.h" LL::LL() { head = NULL; } void LL::prepend(int num) { node* newNode = new node; newNode->val = val; newNode->next = NULL; if (head == NULL) { head = n

我想知道如何创建一个带有remove(int num)和removeback(int num)的链表?是否使用prepend中提供的相同格式

#include "ll.h"

LL::LL()
{
head = NULL;
}

void LL::prepend(int num)
{
node* newNode = new node;
newNode->val = val;
newNode->next = NULL;

if (head == NULL)
{
    head = newNode;
}
else
{
    newNode->next = head;
    head = newNode;
    newNode = NULL;
}

}

void LL::remove(int num)
{

}

void LL:removeBack (int num)
{


}
我认为移除和移除将是相同的功能?对的另外,如何传回该值

我假设remove(int num)会删除第一个与num具有相同值的节点。我将把removeBack作为练习留给您:)


搜索节点然后删除具有该值的节点怎么样

void LL:remove (int num){
ListNode *nodePtr, *previousNode;
if (!head) {
    return;
}
else if (head->value == num)
{
   nodePtr = head->next;
   delete head;
   head = nodePtr;
 }
 else
 {
 nodePtr=head;
     while (nodePtr != NULL && nodePtr->value !=num){
     previousNode = nodePtr;
     nodePtr = nodePtr->next;
     }
 previousNode->next = nodePtr->next;
 delete nodePtr;
 }

}

您是否在询问如何编写函数?“相同格式”是什么意思?将参数传递给
removeBack
,这很奇怪,您的类定义建议您不应该这样做。
void LL:remove (int num){
ListNode *nodePtr, *previousNode;
if (!head) {
    return;
}
else if (head->value == num)
{
   nodePtr = head->next;
   delete head;
   head = nodePtr;
 }
 else
 {
 nodePtr=head;
     while (nodePtr != NULL && nodePtr->value !=num){
     previousNode = nodePtr;
     nodePtr = nodePtr->next;
     }
 previousNode->next = nodePtr->next;
 delete nodePtr;
 }