题目:输入一个链表,反转链表后,输出链表的所有元素。
思路:反转通常使用栈进行反转,栈一个特点是后进先出。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead)
{
stack<int>temp;
ListNode* result = pHead;
while (result != NULL)
{
temp.push(result->val);
result = result->next;
}
result = pHead;
while (result != NULL)
{
if (!temp.empty())
{
result->val = temp.top();
temp.pop();
result = result->next;
}
}
return pHead;
}
};