《剑指offer》从尾到头打印链表

一、题目描述

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

二、输入描述

输入为链表的表头

三、输出描述

使用vector按链表从尾到头保存节点

四、牛客网提供的类框架

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(struct ListNode* head) {

    }
};

五、解题思路

分两步
第一:先翻转链表
第二:对翻转后的链表从链头到链尾逐步保存节点

六、代码

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(struct ListNode* head) {
        ListNode *newHead, *temp;
        vector<int> vt;

        while(head)
        {
            temp = head;
            head = head->next;
            temp->next = newHead;
            newHead = temp;
        }
        while(newHead){
            vt.push_back(newHead->val);
            newHead = newHead->next;
        }
        return vt;
    }
};
posted @ 2016-05-30 17:34  chenximcm  阅读(151)  评论(0编辑  收藏  举报