您的位置:首页 > Web前端

剑指Offer:从尾到头打印链表

2016-08-02 10:39 239 查看

从尾到头打印链表

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

个人认为如果本题就只是打印的话,最好不要反转链表(你什么时候见过打印函数改变数据结构了的)。

我的思路:存储顺序值,然后反转。

注意:

1、reverse(vprint.begin(),vprint.end());//algorithm的使用!!!

2、重新构造。

以上两种衡量选择。

另外我看别人有递归写法:

我觉得不断递归到最末尾时候开始加入节点,这是比较好的思路。

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
vector<int> printListFromTailToHead(struct ListNode* head) {
vector<int> vprint;
for(struct ListNode* cur=head;cur!=nullptr;cur=cur->next){
vprint.push_back(cur->val);
}
reverse(vprint.begin(),vprint.end());//algorithm
return vprint;//vector<int>(vprint.rbegin(),vprint.rend());
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表