c - 从C中的双链表中删除节点?
问题描述
typedef struct node {
int data;
struct node* next;
struct node* prev;
} Node;
Node *last = NULL;
Node *head = NULL;
Node *current = NULL;
int NoNodes = 1;
void EraseNode(int value)
{
if(value<NoNodes)
{
Node* currentNode = head;
int i = 1;
if(value=1)
{
head = head->next;
}
else
{
while(i < value)
{
currentNode=currentNode->next;
i++;
}
if(currentNode->next != NULL)
currentNode->next->prev=currentNode->prev;
if(currentNode->prev != NULL)
currentNode->prev->next=currentNode->next;
NoNodes -=1;
free(currentNode);
}
}
else
printf("There are only %d nodes. Try again",NoNodes);
}
我正在尝试做的是擦除链表中的 N 节点 & 我认为在链接prev
ornext
节点时我搞砸了。
我遵循了一个代码示例,但它似乎不起作用。
解决方案
推荐阅读
- python - 无法从形状广播输入数组 - OpenCV Python
- reactjs - 逐步从 Spring Boot MVC Monolith 迁移到 JAVA Backend + React Frontend
- azure - Azure DevOps:如何查询仅具有其他任务的 PBI 的子任务?
- postgresql - Django 迁移文件未从 docker 容器同步到本地代码库
- ansible - 使用 ansible uri form-multipart inline
- mysql - 在文件“mysql.cnf”中为 MySQL 全局变量设置新值会在尝试登录时出现错误“未知变量”
- php - 如何读取原始类型的反射数据?
- reactjs - 获取所有托管属性 SharePoint Online SPFx 搜索结果 Webpart
- amazonsellercentral - Amazon Selling Partner API 是否支持桌面客户端?
- soapui - 强制标头块不理解