【问题标题】:C++ linked list nodesC++链表节点
【发布时间】:2023-01-25 03:54:19
【问题描述】:

大家见鬼,我对 C++ 链表有非常基本的概念,这里我有节点,但背后的想法是删除最后一个节点,我该如何实现呢?

这是旨在删除最后一个节点的代码部分

//deleting node here
    age* temp = head;
    temp->next->next;//!=NULL
      temp = temp->next;
    //temp->next = NULL;
    delete temp;


#include<iostream>
using namespace std;
struct age{
int a;
age *next;
};
age *head,*current,*node1,*node2,*ona;
int main(){
//creating a first node
age *node1=new age();
head=node1;
node1->a=10;


//creating a second node
age *node2=new age();
node2->a=20;
//link nodes
node1->next=node2;
node2->next=NULL;

//insertion of node ona between node 1 and node 2
ona=new age;
ona->a=15;
ona->next=node1->next;
node1->next=ona;



//deleting node here
age* temp = head;
temp->next->next;//!=NULL
  temp = temp->next;
//temp->next = NULL;
delete temp;



//displaying the otput
current=head;
while(current!=NULL){
cout<<current->a<<endl;
current=current->next;
}
}

【问题讨论】:

    标签: c++ linked-list singly-linked-list


    【解决方案1】:

    要删除最后一个节点,需要遍历链表直到到达倒数第二个节点,然后更新它的next指针指向NULL而不是最后一个节点。以下是如何执行此操作的示例:

    age* temp = head;
    while (temp->next->next != NULL) {
        temp = temp->next;
    }
    delete temp->next;
    temp->next = NULL;
    

    这将删除链表的最后一个节点,并将倒数第二个节点的 next 指针设置为 NULL。

    【讨论】:

    • 如果我需要在不使用 while 循环的情况下删除它怎么办?
    猜你喜欢
    • 1970-01-01
    • 2019-04-26
    • 2019-05-10
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多