更新 0206.翻转链表.md 添加递归解法思路

This commit is contained in:
Evan Yang
2021-10-03 18:59:22 +08:00
committed by GitHub
parent 6f65bb71d8
commit ca06096197

View File

@ -96,6 +96,26 @@ public:
}; };
``` ```
我们可以发现,上面的递归写法和双指针法实质上都是从前往后翻转指针指向,其实还有另外一种与双指针法不同思路的递归写法:从后往前翻转指针指向。
具体代码如下(带详细注释):
```c++
class Solution {
public:
ListNode* reverseList(ListNode* head) {
// 如果链表只有一个节点,返回自身
if (head->next == NULL) return head;
// 递归调用,翻转第二个节点开始往后的链表
ListNode *last = reverseList(head->next);
// 翻转头节点与第二个节点的指向
head->next->next = head;
// 此时的 head 节点为尾节点next 需要指向 NULL
head->next = NULL;
return last;
}
};
```
## 其他语言版本 ## 其他语言版本