看到翻转大家就会很自然的想到后进先出,也就是栈。通过以下两步就可以实现链表的翻转。
1.从链表中读取数据放入栈中;
2.把栈中的数据放进数组中。
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> m;
stack<int> temp;
while(head!=NULL )
{
temp.push (head ->val ) ;
head= head->next ;
}
while(!temp.empty ())
{
m.push_back (temp.top());
temp.pop ();
}
return m;
}
注:在这里我们再复习一波STL的知识,stack,quene不支持迭代器,容器的输入输出依赖于push,pop