反转链表
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
分析:应当设置三个指针,一个指向前驱元素,一个指向后继元素,另外一个保留后继的下一个元素,使得链表指向可以继续向后移动。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL || pHead->next == NULL) return pHead; ListNode *pre=nullptr; ListNode *next=nullptr; ListNode *node=pHead; while(node!=nullptr) { next=node->next; node->next=pre; pre=node; node=next; } return pre; } };