递归解法,利用递归找到最后的结点,并且用ret记录,最后返回它。当递归执行到返回最后一个结点后,此时pHead结点是倒数第二个结点,由于在递归前并没有改变此链表的结构,此时倒数第二个结点依旧指向最后一个结点,改变它的指向,让最后一个结点指向它。翻转后两个结点结束后,倒数第三个结点依旧保留着和倒数第二个结点的指向关系,还是之前的步骤。 class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL || pHead->next == NULL) { ...