区间分为[...]->[prev]->[h]->[...]->[t]->[tail]->[...]要反转的是h和t之间的节点(包括h和t) // 反转区间[head, tail] pair<ListNode*, ListNode*> reverseList(ListNode* head, ListNode* tail) { ListNode* p = nullptr; ListNode* q = head; ListNode* r = nullptr; ListNode* end = tail->next; while ...