第五题——从尾到头打印链表
作者:互联网
题目:
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
#include<iostream>
#include<vector>
#include<unordered_map>
#include<stack>
using namespace std;
struct ListNode
{
int val;
ListNode* next;
ListNode(int x) :val(x), next(NULL)
{}
};
class Solution {
public:
vector<int> reversePrint(ListNode* head)
{
stack<int> shead;
vector<int> result;
ListNode* pNode = head;
//这里的两个判断语句都是对的
//while (pNode )
while (pNode != NULL)
{
shead.push(pNode->val);
pNode = pNode->next;
}
//这里判断条件写错了,啊西八~好像每次在条件判断的地方都会出错,太凭感觉了这样真的不行啊
while (!shead.empty())
{
result.push_back(shead.top());
shead.pop();
}
return result;
}
};
int main()
{
ListNode pHead1 = ListNode(1);
ListNode pHead2 = ListNode(3);
ListNode pHead3 = ListNode(2);
pHead1.next = &pHead2;
pHead2.next = &pHead3;
Solution s1;
s1.reversePrint(&pHead1);
return 0;
}
标签:ListNode,到头,shead,next,链表,pNode,int,从尾,include 来源: https://blog.csdn.net/linping_/article/details/115743218