牛客题霸NC78反转链表c++题解
题意:
跟题目名称一样
解法:
反转链表(单向),就是让每个元素的\(next\)指向的元素的\(next\)只回来。
那就新建一个指针来记录上个元素,进行操作。
但是上面操作有一点小问题:无法向后转移。
解决方案:直接再开一个指针来记录当前元素的\(next\)即可。
代码(c++):
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode* s;
ListNode* z = NULL;
while(pHead != NULL){
s = pHead ->next;
pHead ->next = z;
z = pHead;
pHead = s;
}
return z;
}
};