class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (head == NULL || head->next == NULL)return head;
ListNode* ret = reverseList(head->next);//递归
head->next->next = head;
head->next = NULL;
return ret;
}
};
首先使用递归函数一直递归到最后一个节点,反转之后该节点就为头部节点,记作ret,之后,让当前节点的下一个节点的next指针指向当前节点(即head->next->next) 同时让当前节点的next指针指向NULL,从而实现从尾部开始的反转。递归结束即反转完毕