从尾到头打印链表
来源:互联网 发布:sublime json高亮插件 编辑:程序博客网 时间:2024/05/16 14:35
既然反向输出链表,那就利用栈这个LIFO特性。堆栈中存节点的指针,而非节点的数据域的值。参考了剑指offer的代码,但是还是有点不明白为什么增加节点那里需要的函数参数是指向节点的指针的指针,有待以后继续思考。
代码如下:
#include<iostream>#include<stack>#include<list>using namespace std;struct ListNode{int m_nKey;ListNode * m_pNext;};ListNode * CreateList(int value) //构建链表,返回指向头节点的指针{ListNode * pnode = new ListNode();pnode->m_nKey = value;pnode->m_pNext = NULL;return pnode;}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 printlistreverse(ListNode * phead){stack<ListNode*> sti;ListNode *p = phead;while (p != NULL){sti.push(p);p = p->m_pNext;}while(!sti.empty()){ListNode* temp;temp = sti.top();sti.pop();cout << temp->m_nKey << " ";}cout << endl;}int main(){ListNode* pn = CreateList(1);AddToTail(&pn, 2);AddToTail(&pn, 3);AddToTail(&pn, 4);AddToTail(&pn, 5);AddToTail(&pn, 6);printlistreverse(pn);return 0;}
0 0
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 【20】从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- Offer5 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- poj 1061青蛙的约会
- C++ Primer 第5版--练习10.21
- 重写ListView实现下拉刷新
- 人脸特征点定位方法综述 (An Empirical Study of Recent Face Alignment Methods阅读笔记)
- 你在程序员鄙视链的哪一环?
- 从尾到头打印链表
- Diary 2017-3-22
- hdu 2149(巴什博弈)
- 想找到自己真正热爱的事业,谨记这6点!
- c#学习第二天
- Process scheduling
- Java中的窘!境!!!
- Android Log (三) 利用UncaughtExceptionHandler捕捉异常写入SD卡
- 一个小游戏,保存下来作为一个知识总结