总结
豆包 AI 助手文章总结
首页 > 后端开发 > C++ > 正文

使用C++删除链表的最后一个节点

王林
发布: 2023-08-30 19:09:03
转载
1824人浏览过

使用c++删除链表的最后一个节点

我们有一个单链表,并且我们的任务是从该链表中删除最后一个节点。在这个问题中,我们只需要遍历给定的链表,并简单地删除最后一个节点。

找到解决方案的方法

在这种方法中,我们遍历给定的链表,并跟踪前一个节点和当前节点。当我们的当前节点成为最后一个节点时,我们将previous -> next更改为NULL,并删除当前节点。

示例

#include <iostream>
using namespace std;

struct Node {
   int data;
   struct Node* next;
};
void push(struct Node** ref, int new_data) { // pushing the node
   struct Node* new_n = new Node;
   new_n->data = new_data;
   new_n->next = (*ref);
   (*ref) = new_n;
}
int main() {
   Node* head = NULL;
   push(&head, 12);
   push(&head, 29);
   push(&head, 11);
   push(&head, 23);
   push(&head, 8);
   auto curr = head, prev = head;
   if (!curr || !curr -> next) // if list only has one element or the list is empty
      cout << "Empty\n";
   else {
      while (curr) { // while curr != NULL
         if (!curr -> next) {
            prev -> next = NULL;
            delete(curr); // freeing the space
            break;
         }
         prev = curr;
         curr = curr -> next; // moving to the next node
      }
   }
   for (Node* temp = head; temp != NULL; temp = temp->next) // printing the data
      cout << temp->data << " ";

   return 0;
}
登录后复制

输出

8 23 11 29
登录后复制

上述代码的解释

在这种方法中,我们遍历数组,跟踪当前节点和上一个节点。当当前节点成为最后一个节点时,我们将previous -> next更改为NULL并删除当前节点。给定程序的总体时间复杂度为O(N),其中N是给定列表的大小。

时间复杂度 - O(N)

立即学习C++免费学习笔记(深入)”;

N:给定数组的大小

结论

在本文中,我们解决了从给定链表中删除最后一个节点的问题。我们还学习了这个问题的C++程序和我们解决的完整方法。我们可以用其他语言编写相同的程序,如C、Java、Python和其他语言。希望您会发现本文有帮助。

以上就是使用C++删除链表的最后一个节点的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号