核心思想
- 标准的递归结构-
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;
}