关闭

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

标签: 翻转链表剑指offer
177人阅读 评论(0) 收藏 举报
分类:

一、题目描述

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

二、输入描述

输入为链表的表头

三、输出描述

使用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;
    }
};
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:53653次
    • 积分:1277
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:0篇
    • 评论:15条
    友情链接
    最新评论