//我来理解一下运用递归求解
class Solution {
public:ListNode* reverseList(ListNode* head) {//首先判断是否为最后一个元素if(head == null|| head.next == null){return head;//返回末尾元素}ListNode* receive;//此时进入循环的每一层都实现了temp接收head.next的结点进行保存;//所以head同时可以作为新的反转列表后的新的结点元素receive = reverseList(head->next);
//第一次返回5 receive = 5跳出第5层递归,此时在第四层循环此时head->next = 5,head.next.next = 4,4的下一个值置空,返回4;
//第二次在第3层的时候,head->next = 4;head = 3,让3.next置空,返回3;依次类推,
//第三次先到达head.next = null,head返回3,head.next 此时为上一个;head.next.next = head;head.next = null;//使得下一个结点返回
//这里面需要注意是:递归输入的是head-》next下一个元素 所以需要采用这种方法}
};