链表反转
1需要三个指针协同工作 工作指针 前指针 后指针
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL) return nullptr; ListNode * ReverseHeadNode=nullptr;//用来当做返回值的!!! ListNode * Node=pHead; ListNode * pre=nullptr; while(Node!=NULL)//从1到尾结点遍历 { ListNode* pNext=Node->next; if(pNext==nullptr)//已经到达尾结点 ReverseHeadNode=Node; Node->next=pre; pre= Node; Node=pNext; } return ReverseHeadNode; } };