ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

12.20 - 反转链表II

2026/10/3 17:26:42 拓冰建站 浏览量
12.20 - 反转链表II

1.反转链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* successor = nullptr; ListNode* reverseN(ListNode* head, int n) { if (n == 1) { successor = head->next; return head; } ListNode* last = reverseN(head->next, n - 1); head->next->next = head; head->next = successor; return last; } ListNode* reverseBetween(ListNode* head, int left, int right) { if (left == 1) { return reverseN(head, right); } head->next = reverseBetween(head->next, left - 1, right - 1); return head; } };