[面试] 算法(七)—— 逆序输出链表
来源:互联网 发布:web os 软件 编辑:程序博客网 时间:2024/06/04 00:58
递归的本质是栈,能用栈解决的问题都可转换为递归的程序结构。
链表结点做如下定义:
struct ListNode{ int val; ListNode* next;};
这是一道典型的“先进后出”的案例,先进后出,我们可以使用 stack 实现这种顺序。
void PrintListReversely_Iteratively(ListNode* pHead){ std::stack<ListNode*> nodes; while (pNode) { nodes.push(pNode); pNode = pNode->next; } while(!nodes.empty()) { print("%d\t", nodes.top()->val); nodes.pop(); }};
既然想到了用栈来实现这一函数,而递归的本质是一个栈结构,于是很自然地想到用递归来实现。
void PrintListReversely_Recursively(ListNode* pHead){ if (pHead) { if (pHead->next) PrintListReversely_Recursively(pHead->next); print('%d\t', pHead->val); // 如果将这条打印语句,放在第二条 if 判断之前,就是顺序式的了 }}
0 0
- [面试] 算法(七)—— 逆序输出链表
- 链表的逆序输出 递归算法
- 算法学习十四----逆序输出链表
- 递归算法—输入字母逆序输出&汉诺塔递归算法
- 逆序输出链表
- 逆序链表输出
- 逆序输出链表
- 链表逆序输出
- 链表逆序输出
- 逆序输出链表
- 逆序输出链表
- 【面试算法系列】逆序输出一个单链表 - C语言实现
- 基本算法—链表逆序
- 面试经典(4)--链表逆序
- 华为机试—逆序链表输出
- 华为机试—逆序链表输出
- 华为机试—逆序链表输出
- 链表逆序输出(递归妙)
- CodeForces 611B
- Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
- spring boot .idea/ 下的文件要注意保存
- 关于Qt Graphics编程的几点经验总结
- Qt 在GraphicsView中 打开一幅图片
- [面试] 算法(七)—— 逆序输出链表
- 《C++》02 C++的变量类型
- Qt GraphicsView框架中实现多个item之间的层次调整功能
- PHP中如何设置error_reporting错误报告级别
- 简单实现从底部弹起的分享BottomDialog
- CRCK, array 1.2
- js面向对象
- JavaScript函数通过多个()连续调用多次并返回最终结果
- ORA-00845: MEMORY_TARGET not supported on this system