目录
来源:
题目描述:

思路:
创建一个栈,每遍历一个元素放入栈中


ptr为空时,表明所有的元素都放到栈中了
创建一个数组将栈中元素弹出
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
stack<ListNode*> stack; //创建栈
vector<int> arr;//创建数组
ListNode* ptr = head;
while(ptr!=NULL)
{
stack.push(ptr);//进栈
ptr=ptr->next;
}
while(stack.empty()==false)
{
ListNode *node = stack.top();
arr.push_back(node->val);
stack.pop();//出栈
}
return arr;
}
};

该文章介绍了一种方法,通过创建一个栈,将链表中的节点依次压入栈中,然后将栈中的节点值弹出到数组中,从而实现链表的逆序打印。这个解决方案利用了栈的后进先出特性,适用于LeetCode等编程挑战问题。
787

被折叠的 条评论
为什么被折叠?



