c++ 反转链表递归调用
时间: 2023-11-18 12:50:55 浏览: 154
反转链表的递归调用是一种常用的方法。这种方法通过递归调用来实现链表的反转。具体的步骤如下:
1. 如果头结点为空或者链表只有一个结点,则直接返回头结点。
2. 通过递归调用ReverseList()函数,将链表的下一个结点作为参数传入。
3. 在递归的过程中,每次将当前结点的下一个结点的next指针指向当前结点,从而实现局部反转。
4. 将当前结点的next指针指向NULL,作为反转后的尾结点。
5. 返回递归调用的结果,即反转后的头结点。
这样,经过递归调用后,链表就完成了反转。
参考代码如下:
```
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead == NULL || pHead->next == NULL) {
return pHead;
}
ListNode* ans = ReverseList(pHead->next);
pHead->next->next = pHead;
pHead->next = NULL;
return ans;
}
};
```
阅读全文