~从尾到头打印链表~

来源:互联网 发布:黑白网络 编辑:程序博客网 时间:2024/06/14 04:36

问题描述:输入一个链表,从尾到头打印链表每个节点的值。

问题分析:

1.链表只有一个指向下一个节点的指针,却没有指向上一个节点的指针。可要从尾到头打印链表每个节点的值有两种办法:循环与递归。

2.从尾到头打印,即先打印后进去的数据,后打印先进去的数据,感觉就是让栈来存储这些数据并打印出来啊,所以这道题需要借助栈来实现。

3.顺序遍历一遍链表,并将链表中的每个节点压入栈中,然后让数据依次出栈即可得到逆序的链表。

源代码如下:

vector<int> printListFromTailToHead(ListNode* head) {    stack<ListNode* > node;        ListNode* cur = head;    while(cur != NULL) {        node.push(cur);        cur = cur->next;    }        vector<int> output;    while(!node.empty()) {        cur = node.top();        int tmp = cur->val;                 output.push_back(tmp);        node.pop();    }        return output;}


 

0 0
原创粉丝点击