反转链表
public:
ListNode* reverseList(ListNode* head) {
// 1. 递归终止条件
if (head == nullptr || head->next == nullptr) return head;//最后一个是p
ListNode* p = reverseList(head->next);
head->next->next = head;
//head.next.next本来是指向null,,等于的head就是让他在指到反转指回去
head->next = nullptr;
//再让head下一个变成null指回去null
return p;//由于这个导致返回的每次返回的是同一个p
//注意这个不是head,如果是head就乱了
}