加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LC92.cpp 876 Bytes
一键复制 编辑 原始数据 按行查看 历史
xinanXu 提交于 2023-08-28 16:49 . 92. 反转链表 II
/**
* 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* reverseBetween(ListNode* head, int left, int right) {
vector<ListNode*> temp;
ListNode* p = head;
for (int i = 1; i < left; i++)
p = p->next;
for (int i = left; i < (1 + left + right) / 2; i++, p = p->next)
temp.push_back(p);
int len = temp.size() - 1;
int i;
if (!((right - left) % 2)) i = (left + right) / 2 + 1, p = p->next;
else i = (left + right) / 2;
for ( ; len >= 0; i++, p = p->next, len--)
swap(temp[len]->val, p->val);
return head;
}
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化