题目如下
思路与代码
很多同学看到这个题会很懵,链表咋反转,别慌
就是一个个反转就行了。
不积硅步无以至千里,不积小流无以成江海
首尾交换成为尾链表,原尾链表next成为首链表
简单来说,就是不断地交换链表。前面的链表被视为了一个整体,一个表头地交换就等于把前面的都交换了
可能说的不是很清楚。仔细看看代码就懂了,只可意会呀!!!
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *pre=nullptr;
ListNode *cur=pHead;
while(cur!=nullptr){
ListNode *tmp=cur->next;
cur->next=pre;
pre=cur;
cur=tmp;
}
return pre;
}
};