学习用品

从尾到头打印链表


题目描述

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M

只是空行用

解题思路

//1:递归调用,容易占用内存过多导致程序崩溃,不推荐

//2:调用栈实现

只是空行用

代码

struct ListNode {
	int val;
	struct ListNode* next;
	ListNode(int x) :
		val(x), next(NULL) {}
};

vector<int> printListFromTailToHead(ListNode* head)
{
	vector<int> ArrayList; //所需容器
	stack<int> container; //用于存放数据元素的栈
	ListNode* p = head;
	//将原链表所有结点值存入栈中
	while (p)
	{
		container.push(p->val);
		p = p->next;
	}
	//栈回写容器
	while (!container.empty())
	{
		ArrayList.push_back(container.top());
		container.pop();
	}
	return ArrayList;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注