C++链表删除和删除返回功能
C++ linked lists Remove and RemoveBack function
我想知道如何创建一个带有 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 具有相同值的第一个节点。我会把删除回来作为你的练习:)。
void LL:remove(int num) {
if (!head) {
return;
}
else if (head->val == num) {
node* temp = head;
head = head->next;
delete temp;
return;
}
node* second = head;
node* first = head->next;
// Iterate until we find the target, or reach the end
while (first && first->val != num) {
second = first;
first = first->next;
}
// At this point, first points to either nullptr or the target
if (first) {
second->next = first->next;
delete first;
}
}
搜索节点然后删除具有该值的节点怎么样?
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;
}
}
相关文章:
- 在Qt5中使用QTextSteam时的"使用已删除功能"
- 链表删除功能的单指针 // 是可能的
- 删除功能不适用于串行通信后多个循环中的多个实例
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 使用删除功能?
- 二叉搜索树 - 使用 Linux 在虚拟机中制作删除功能
- 为什么我的删除功能总是出现分段错误
- 与 c++ 中的删除功能混淆
- 用户使用C++中的删除功能删除文件
- 所以我想出了他的代码,但我不确定如何继续删除功能?
- 为什么我的删除功能中存在错误
- std::ifstream,使用已删除功能
- 学习C :错误:使用已删除功能
- 升级基于文本游戏的库存中的删除功能
- 错误:使用已删除功能
- 删除功能和ADL
- 队列的删除功能
- 删除功能误差的C 与有条件的iniaization一起使用
- 在PowerPC编译器上删除功能,而不是GCC上的功能
- 为什么是我的AVL树删除功能不平衡