牛客题霸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;
    }
};
posted @ 2020-12-01 21:34  Dickson  阅读(154)  评论(0编辑  收藏  举报