##剑指offer之从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2] 输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
来源:力扣(LeetCode)
class Solution { public: vector<int> reversePrint(ListNode* head) { stack<int> str; vector<int> strl; struct ListNode *thead; for(thead=head;thead!=NULL;thead=thead->next){ str.push(thead->val); } while(!str.empty()){ strl.push_back(str.top()); str.pop(); } return strl; } };解题思想:从尾到头打印链表,首先想到就是利用栈,遍历链表中的元素,将其压入栈中,再将其弹出存入数组。
注意:将元素弹出栈时一定要先检查栈是否为空。
补充:stack 栈堆容器类改编,为程序员提供栈的功能, top() //返回栈顶元素 push()//将元素压入栈 pop() //将栈顶元素弹出 empty()//判断栈是否为空,是则返回1 size() //返回栈中元素数目