C++ C++;链表移除和移除功能
我想知道如何创建一个带有remove(int num)和removeback(int num)的链表?是否使用prepend中提供的相同格式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
#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;
}