光之使者 发表于 2024-12-17 00:15:02

反转链表 II

https://i-blog.csdnimg.cn/direct/65dda1dbb3e043bc9cae22f108e290d0.png
https://i-blog.csdnimg.cn/direct/728c9ec1016d417e8152e868e9f53cd9.png
题解:
/**
* Definition for singly-linked list.
* struct ListNode {
*   int val;
*   struct ListNode *next;
* };
*/
struct ListNode* reverseBetween(struct ListNode* head, int left, int right) {
   struct ListNode* dummy=(struct ListNode*)malloc(sizeof(struct ListNode));
   dummy->next=head;
   struct ListNode *newHead,*temp,*steady=head,*last=dummy;
   for(int i=0;i<left-1;i++){
    steady=steady->next;
    last=last->next;
   }
   newHead=steady;
   temp=steady->next;
   for(int i=0;i<right-left;i++){
    steady->next=temp->next;
    temp->next=newHead;
    newHead=temp;
    temp=steady->next;
   }
   last->next=newHead;
   return dummy->next;
} 结果:时间复杂度O(N),空间复杂度O(1)
https://i-blog.csdnimg.cn/direct/f3c21d63bd3b4024afe01b37fa3f9acf.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 反转链表 II