题解 | #链表内指定区间反转#

链表内指定区间反转

https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

/**

* struct ListNode {

* int val;

* struct ListNode *next;

* };

*/

class Solution {

public:

/**

*

* @param head ListNode类

* @param m int整型

* @param n int整型

* @return ListNode类

*/

ListNode* reverseBetween(ListNode* head, int m, int n) {

// write code here

ListNode* p = new ListNode(0); //创建虚拟头结点

p->next = head;

ListNode* pre = p;

ListNode* cur = p->next; //cur指针始终指向初始链表的第m个结点(后续可移动)

for(int i = 1; i < m ;i++){

pre = cur;

cur = cur->next;

}

for(int i = m;i < n; i++){

ListNode* temp = cur->next;

cur->next = temp->next;

temp->next = pre->next;

pre->next = temp;

}

ListNode *over=p->next;

delete p;

return over;

}

};

全部评论

相关推荐

浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务