注意:
C语言的这个一反就是错的head == NULL || head->next == NULL
struct ListNode* reverseList(struct ListNode* head){if( head == NULL||head->next == NULL )return head;struct ListNode* last = reverseList(head->next);head->next->next = head;head->next = NULL;return last;}
last返回的是最后一个结点
方法:
- 递归
双指针操作:https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-shuang-zhi-zhen-di-gui-yao-mo-/(没有弄懂)
想法:
在链表全部递归的过程中,类似于一种“反悔”的过程,就是到了未来(下一个结点),然后随意乱指都行,然后经过返回之后又到上一个结点。
