剑指offer刷题笔记——从尾到头打印链表

题目描述

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

问题分析

链表的遍历是顺序的遍历,需要从尾到头的打印链表,我们首先想到的就是的功能,先进后出。

思路

  1. 声明一个,从头开始遍历链表
  2. 按照顺序对链表的每个节点进行压栈操作
  3. 弹栈,完成从尾到头打印链表的操作了。

代码

C++代码

class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        vector <int> result; //用于存放结果的一个vector
        stack<int> arr;  //声明一个栈
        ListNode* p=head; //申请一个指针,指向头节点
        while(p!=NULL)
        {
            arr.push(p->val);  //压栈
            p = p->next; //指针指向下一个节点
        }
        int len = arr.size();
        for(int i = 0; i< len; i++)
        {
            result.push_back(arr.top());  //弹栈的结果存放于result中
            arr.pop();
        }
        return result;
    }
};
发表新评论