首页 > 代码库 > 从尾到头打印链表

从尾到头打印链表

题目描述

输入一个链表,从尾到头打印链表每个节点的值。 
输入描述:
输入为链表的表头
 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 };

 

从尾到头打印链表