本文最后更新于:2020年6月28日 下午
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
实现如下:
//可以使用stack的先进后出,也可以使用递归,因为已给定函数所以使用递归
//本题的在线测试用例是无头链表→_→
/*节点结构体
struct ListNode
{
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
*/
class Solution
{
public:
vector<int> printListFromTailToHead(ListNode* head)
{
vector<int> v;
//判断是否为空,不为空调用递归函数
if (head != NULL) ListFromTailToHead(head, v);
return v;
}
//递归函数传参为指向当前结点的指针和存储value的vector引用,因为vector需要共同使用
void ListFromTailToHead(ListNode *p, vector<int> &vec)
{
//当前指针不为空时说明节点存在
if (p != NULL)
{
ListFromTailToHead(p->next, vec);//先递归后压value
vec.push_back(p->val);
}
}
};
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!