剑指offer 输出链表/逆序输出
2017-11-19 10:40
281 查看
#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<<(*it1)->value<<endl; } while (!My_Nodes2.empty()) { Node_temp = My_Nodes2.top();//出,栈顶元素赋值 cout<<Node_temp->value<<endl; My_Nodes2.pop(); } } void main() { system("pause"); }
对于较为简单的题,还是有很多需要注意的地方:
面试官是否允许改变输入的参数(链表)
使用递归来打印链表时,如果链表过长,会导致函数调用的层级很深,造成函数调用栈的溢出
循环、递归、栈、链表,这几点知识的相关性
相关文章推荐
- 剑指offer例题5—逆序输出链表
- 剑指Offer面试题5——倒序输出一个链表
- 【剑指offer】链表相关-逆向输出
- 剑指offer--输入一个链表,反转链表后,输出链表的所有元素。
- 剑指offer --反向输出链表与输出链表的倒数第k个元素
- 6.剑指offer-输出两个链表的公共节点
- 【剑指offer-解题系列(3)】从尾到头,反向输出链表
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 剑指offer 之 输出链表的倒数第K个结点
- 剑指offer 链表的逆序
- 剑指offer 从尾到头输出单链表
- 剑指offer-反转链表输出
- 剑指offer之倒着输出链表 Java
- 剑指offer--指定链表逆序打印
- 剑指offer面试题java实现之题5:逆序打印链表
- 剑指offer:输出该链表中倒数第k个结点
- 剑指offer--给定一个链表,从尾部到头部打印,输出链表节点的值
- 剑指offer-16:反转链表(单链表逆序)
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。