/*
struct ListNode {
int val;
struct ListNode next;
ListNode(int x) :
val(x), next(NULL) {
}
};
/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
//顺序遍历原链表,将当前结点用头插法接到新结点链表
ListNode * newHead = nullptr;
ListNode * cur = nullptr;
while(pHead != nullptr)
{
cur = pHead;
pHead = pHead->next; //让原头指针指向下一个结点,相当于从原链表上的删除当前结点
cur->next = newHead; //将当前结点接到新头结点
newHead = cur;
}
return newHead;
}
};
//注意:这里的所说的头结点是一个指向第一个结点的指针,不是教材中所说的数据为空、指针域总是指向第一个有效数据结点的、便于操作的那个“头结点”。