注意:

  1. C语言的这个一反就是错的head == NULL || head->next == NULL

    1. struct ListNode* reverseList(struct ListNode* head){
    2. if( head == NULL||head->next == NULL )
    3. return head;
    4. struct ListNode* last = reverseList(head->next);
    5. head->next->next = head;
    6. head->next = NULL;
    7. return last;
    8. }
  2. last返回的是最后一个结点

方法:

  1. 递归
  2. 双指针操作:https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-shuang-zhi-zhen-di-gui-yao-mo-/(没有弄懂)

    想法:

  3. 在链表全部递归的过程中,类似于一种“反悔”的过程,就是到了未来(下一个结点),然后随意乱指都行,然后经过返回之后又到上一个结点。