题目描述:输入一个链表,反转链表后,输出链表的所有元素。
我是个小白,凡是有点经验的人就请绕道吧,担心你们笑话。
大学没有学过关于数据结构与算法课程,而自己又是一个特别菜的白痴,今天做了这个比较基础的题目。程序比较简单,但是自己还是想了半天。
要想实现链表翻转的关键其实就是存储next指针值。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(!pHead)
return pHead;
ListNode *pre=NULL;
ListNode *next=NULL;
while(pHead)
{
next=pHead->next;
pHead->next=pre;
if(!next)
break;
pre=pHead;
pHead=next;
}
return pHead;
}
};