如果我们只知道最后一个节点的地址,我们能删除单个链表的最后一个节点吗 [英] Can we delete the last node of a Single Linked list if we only know the address of last node

查看:0
本文介绍了如果我们只知道最后一个节点的地址,我们能删除单个链表的最后一个节点吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//变量

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆