剑指Offer——(3)从尾到头打印链表

来源:互联网 发布:美国gdp数据公布网站 编辑:程序博客网 时间:2024/06/06 19:40

题目描述:

输入一个链表,从尾到头打印链表每个节点的值。

实现如下:

//可以使用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);        }    }};
0 0
原创粉丝点击