#include <iostream>
#include <string>
#include <vector>
#include <stack>
using namespace std;
typedef int datatype;
struct Node
{
datatype value;
Node* Next_Node;
};
//从头到尾打印链表中的结点
/*面试官是否允许这个函数允许改变输入,也就是改变输入链表的顺序是一个交流点*/
bool Print_Node(Node **first)
{
if (first == NULL || *first == NULL)
{
return false;
}
Node *Node_temp = *first;
vector<Node*> My_Nodes;
//利用栈的先进后出的特点也是比较好的
stack <Node*> My_Nodes2;
while (Node_temp != NULL)
{
My_Nodes.push_back(Node_temp);
My_Nodes2.push(Node_temp);//进
Node_temp = Node_temp->Next_Node;
}
vector<Node*>::iterator it1 = My_Nodes.end();
for (it1;it1 != My_Nodes.begin();it1--)
{
cout<<(*
剑指offer 输出链表/逆序输出
最新推荐文章于 2021-10-16 15:25:11 发布
面试中遇到输出链表逆序的问题,讨论了是否可以修改输入参数,并分析了使用递归可能导致的函数调用栈溢出问题。探讨了结合循环、递归、栈及链表操作的解决方案。
摘要由CSDN通过智能技术生成