/** * 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;//返回中间节点 }