从尾到头打印链表
来源:互联网 发布:p2p理财记账软件 编辑:程序博客网 时间:2024/06/14 03:06
典型的后进先出,可以用栈实现这种顺序,每经过一个节点的时候,把该节点放到栈中,当遍历完整个链表后,再从栈顶开始逐个输出节点的值。
#include<iostream>#include<stack>using namespace std;struct ListNode{int m_nKey;ListNode *m_pNext;};void AddToTail(ListNode** pHead,int value){ListNode* pNew = new ListNode();pNew->m_nKey = value;pNew->m_pNext = NULL;if (*pHead == NULL)*pHead = pNew;else{ListNode* pNode = *pHead;while (pNode->m_pNext != NULL)pNode = pNode->m_pNext;pNode->m_pNext = pNew;}}void RemoveNode(ListNode** pHead, int value){if (pHead == NULL || *pHead == NULL)return;ListNode* pToBeDeleted = NULL;if ((*pHead)->m_nKey == value){pToBeDeleted = *pHead;*pHead = (*pHead)->m_pNext;}else{ListNode* pNode = *pHead;while (pNode->m_pNext != NULL && pNode->m_pNext->m_nKey != value)pNode = pNode->m_pNext;if (pNode->m_pNext != NULL&&pNode->m_pNext->m_nKey == value){pToBeDeleted = pNode->m_pNext;pNode->m_pNext = pNode->m_pNext->m_pNext;}}if (pToBeDeleted != NULL){delete pToBeDeleted;pToBeDeleted = NULL;}}void PrintListReverse(ListNode* pHead){stack<ListNode*> nodes;ListNode* pNode = pHead;while (pNode != NULL){nodes.push(pNode);pNode = pNode->m_pNext;}while (!nodes.empty()){pNode = nodes.top();cout << pNode->m_nKey << " ";nodes.pop();}}int main(){ListNode* pHead = NULL;for (int i = 0; i < 10;i++)AddToTail(&pHead, i);PrintListReverse(pHead);}
0 0
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 【20】从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- Offer5 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- 【无人机开发】通讯协议MavLink详解
- #!/usr/bin/php
- ArrayAdapter ,SimpleAdapter与SimpleCursorAdapter 区别
- 7. SpringMVC 数据验证
- 使用git管理自己的代码--简单使用流程
- 从尾到头打印链表
- JavaScript语言精粹——语法
- 初识AngularJS
- nil、Nil、NULL和NSNull的理解
- Android如何捕获应用的crash信息
- 第3课:Scala函数式编程彻底精通及Spark源码阅读
- 数组
- Hibernate 出现attempted to assign id from null one-to-one property
- Java基础知识