从尾到头打印链表

Posted Love63

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从尾到头打印链表相关的知识,希望对你有一定的参考价值。

题目描述

输入一个链表,从尾到头打印链表每个节点的值。 
输入描述:
输入为链表的表头
 1 /**
 2 *  struct ListNode {
 3 *        int val;
 4 *        struct ListNode *next;
 5 *        ListNode(int x) :
 6 *              val(x), next(NULL) {
 7 *        }
 8 *  };
 9 */
10 class Solution {
11 public:
12     vector<int> printListFromTailToHead(struct ListNode* head) {
13          /*
14          解题思路:(没有带头结点)
15          1、从尾到头打印链表每个节点的值,先将链表反转,然后从头到尾一次打印
16         */
17         ListNode *node=head;//第一元素的指针
18         ListNode *preNode=NULL;   //前一个节点的指针(必须从NULL开始)
19         ListNode *nextNode=NULL;  //后一个节点的指针
20         while(node){
21             nextNode=node->next;
22             node->next=preNode;
23             preNode=node;
24             node=nextNode;
25         }
26        vector<int> v;
27        while(preNode){  //打印链表
28            v.push_back(preNode->val);
29            preNode=preNode->next;
30        }
31       return v;
32     }
33 };

 

以上是关于从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章

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

从尾到头打印链表

《剑指Offer—— 06. 从尾到头打印链表》代码

从尾到头打印链表

从尾到头打印链表

[编程题] 从尾到头打印链表