【链表】删除一个无头单链表的非尾节点 以及从尾到头打印单链表
来源:互联网 发布:中国股市知乎 编辑:程序博客网 时间:2024/06/02 04:40
删除一个无头单链表的非尾节点
分析:最直观的思路,删除一个节点,需要知道该节点的前一个节点,然后将该节点的前一个节点指向该节点的下一个节点。
思路:可将删除的节点的下一个节点 覆盖掉当前要删除的点,然后原删除的节点指向下一个节点的下一个节点。
//确保posNode不是尾节点void DelNotTailNode(Node *posNode){ if (posNode) { Node* pNext = posNode->_next; posNode->_value = pNext->_value; posNode->_next = pNext->_next; free(pNext); pNext = NULL; }}
从尾到头打印单链表
方法1、
借助栈的后进先出的特性,将从头到尾遍历的节点保留,然后输出栈。
void PrintListReverse(Node* pHead){ std::stack<Node *> s; Node* pNode = pHead; while (pNode) { s.push(pNode); pNode = pNode->_next; } //输出栈 while (!s.empty()) { cout << s.top()->_value << " "; s.pop(); } cout << endl;}
方法2
方法1借助栈,递归的本质就是栈,所以可以用递归实现,每次访问到一个节点的时候想,先递归输出它的后面的节点,再输出该节点自身。
void PrintListReverse2(Node* pHead){ if (pHead != NULL) { PrintListReverse2(pHead->_next); cout << pHead->_value << " "; }}
阅读全文
0 0
- 【链表】删除一个无头单链表的非尾节点 以及从尾到头打印单链表
- 删除一个无头单链表的非尾节点+从尾到头打印单链表
- 17_7_17:删除一个无头单链表的非尾节点。从尾到头打印单链表
- 笔试/面试:删除一个无头单链表的非尾节点 ,从尾到头打印单链表
- 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表
- 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表
- day05删除一个无头单链表的非尾节点 +从尾到头打印单链表+复杂链表的复制
- <笔试><面试>单链表相关(1)从尾到头打印链表、删除一个无头链表的非尾结点
- 给定一个节点为头节点,从尾到头反过来打印出每个节点的值
- 输入一个链表的头结点,从尾到头反过来打印每个节点的值。
- 输入一个链表的头结点,从尾到头反过来打印每个节点的值。
- 输入一个链表,从尾到头打印链表每个节点的值
- 输入一个链表,从尾到头打印链表每个节点的值。
- 输入一个链表,从尾到头打印链表每个节点的值。
- 输入一个链表,从尾到头打印链表每个节点的值
- 输入一个链表,从尾到头打印链表每个节点的值。
- 输入一个链表,从尾到头打印链表每个节点的值。
- 输入一个链表,从尾到头打印链表每个节点的值。
- Web目录全能扫描工具DirBuster
- Lock
- spring Resource和Autowired主要区别
- 浅谈人工智能
- 从需求到界面你应该注意什么
- 【链表】删除一个无头单链表的非尾节点 以及从尾到头打印单链表
- vue数组中数据变化但是视图没有更新解决方案
- 安装PyCharm新建项目出现No Python interpreter selected解决方法
- DevOps定义基础入门及历史
- LeetCode 319 Bulb Switcher(数学Tricks)
- 理解Java对象序列化
- Mysql数据库的备份与恢复
- 仿今日头条“关注”按钮的实现
- CentOS 7 下如何安装使用Composer