JZ15反转链表

代码:

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        ListNode * pre = NULL;
        ListNode * next = NULL;
        while(pHead!=NULL)
        {
            next = pHead->next;//将下一个节点保存起来
            pHead->next = pre;//向反向指
            pre = pHead;//当前的头结点变成了前一个节点  继续走下去
            pHead=next;//下一个节点变成了当前头结点
        }
        return pre;//如果head为null的时候,pre就为最后一个节点了,但是链表已经反转完毕,pre就是反转后链表的第一个节点
    }
};
以大多数人努力程度之低,根本轮不到去拼天赋~
原文地址:https://www.cnblogs.com/gcter/p/15338750.html