核心思想
  • 标准的递归结构-
struct ListNode* ReverseList(struct ListNode* pHead ) {
    // write code here
    // case1  链表为空
    if (pHead == NULL)
    {
        return NULL;
    }
    
    // 递归方式,首先得找到尾结点.尾结点的判断方式为current->next==NULL
    if (pHead->next == NULL)
    {
        return pHead;
    }
    
    
    struct ListNode * n3=NULL;
    // 第一次递归逆向走,返回的第一个node结点是尾结点
    n3=ReverseList(pHead->next);
    pHead->next->next=pHead;
    pHead->next=NULL;
    
    return n3;
}