/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pHead ListNode类
* @return ListNode类
*/
struct ListNode* ReverseList(struct ListNode* pHead ) {
if(pHead->next==NULL||pHead==NULL){
return pHead;
}
// write code here
struct ListNode* l=pHead,*m=l->next,*r=m->next;//定义左,中,右三个节点
m->next=l;
l->next=NULL;//第一个节点指向的下一个节点为空,作为队尾
while(r!=NULL){
l=m;
m=r;
r=r->next;//三个节点各自向后移动一位
m->next=l;//中间节点指向左节点
}
return m;//返回中间节点
}

京公网安备 11010502036488号