如果我们只知道最后一个节点的地址,我们能删除单个链表的最后一个节点吗 [英] Can we delete the last node of a Single Linked list if we only know the address of last node
本文介绍了如果我们只知道最后一个节点的地址,我们能删除单个链表的最后一个节点吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
//变量
typedef struct node
{
int value;
struct node *next;
}mynode;
//全局变量(但不是必需的)。
mynode *head, *tail, *temp;
//函数
void add(int value);
//向链表添加新节点的函数
void add(int value)
{
temp = (mynode *) malloc(sizeof(struct node));
temp->next=(mynode *)0;
temp->value=value;
if(head==(mynode *)0)
{
head=temp;
tail=temp;
}
else
{
tail->next=temp;
tail=temp;
}
}
//main()函数
int main()
{
head=(mynode *)0;
// Construct the linked list.
add(1);
add(2);
add(3);
return(0);
}
如果我只有一个指向节点的指针,它的值是3(前面代码中看到的最后一个节点),我们是否可以删除它并将值为2(前面提到的代码)的节点作为最后一个节点。
推荐答案
否,但如果您知道自己在做什么,则可以就地修改最后一个节点。删除最后一个节点需要访问倒数第二个节点,特别是其到最后一个节点的链接。
这篇关于如果我们只知道最后一个节点的地址,我们能删除单个链表的最后一个节点吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文