输入一个链表,反转链表后,输出链表的所有元素。
// test14.cpp : 定义控制台应用程序的入口点。
//
include "stdafx.h"
include
include
include
include
include
include
include <initializer_list>
include
using namespace std;
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
//把链表中的元素首先存入一个栈中
//从栈中一个一个地读出数据插入rlist中
ListNode rlist=pHead;
stack
while (rlist !=NULL)
{
temp.push((
rlist = rlist->next;
}
rlist = pHead;
while (rlist !=NULL)
{
if(!temp.empty())
{
(rlist).val = temp.top();
temp.pop();
rlist=(rlist).next;//一开始这个地方忘了更新rlist了,结果一直出现栈溢出这个问题
}
}
return pHead;
}
};
int main()
{
int num;
vector
Solution so;
ListNode first(1);
ListNode second(2);
ListNode third(3);
ListNode four(4);
ListNode *head=&first;
first.next = &second;
second.next = &third;
third.next = &four;
ListNode result= so.ReverseList(head);
while (result !=NULL)
{
cout << (result).val<<" ";
result = (*result).next;
}
cout << endl;
return 0;
}

浙公网安备 33010602011771号