剑指offer,链表倒输出,综合vector,stack

剑指offer,链表倒输出

  • 知识点扩充:

1.向量vector: 在使用它时, 需要包含头文件 vector, #include<vector> </vector>

vector<int> a ;                                //声明一个int型向量                
vector<int> a(10) ;                            //声明一个初始大小为10的向量

常用函数

void push_back(elementType element)//追加一个元素到向量
void pop_back()//删除向量的最后一个元素
unsigned const size()//返回向量中元素的个数
elementType const at(int index)//返回指定位置的元素
bool const empty()//如果向量为空返回真
void clear()//删除向量中所有元素
void swap(vector v)//交换此向量与另一个向量v的内容

2.使用标准库的栈和队列时,先包含相关的头文件

#include<stack>
#include<queue>

定义栈如下:

stack<int> stk;

定义队列如下:

queue<int> q;

栈提供了如下的操作

s.empty()               如果栈为空返回true,否则返回false
s.size()                返回栈中元素的个数
s.pop()                 删除栈顶元素但不返回其值
s.top()                 返回栈顶的元素,但不删除该元素
s.push()                在栈顶压入新元素

队列提供了下面的操作

q.empty()               如果队列为空返回true,否则返回false
q.size()                返回队列中元素的个数
q.pop()                 删除队列首元素但不返回其值
q.front()               返回队首元素的值,但不删除该元素
q.push()                在队尾压入新元素
q.back()                返回队列尾元素的值,但不删除该元素
  • 结果初版:
    class Solution {
    public:
      vector<int> printListFromTailToHead(ListNode* head) {
          vector<int> a;
          stack<int> b;
          while(head)
          {
              b.push(head->val);
              head=head->next;
          }
          while(!b.empty())
          {
              a.push_back(b.top());
              b.pop();
          }
          return a;
      }
    };
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务