LeetCode92 反转链表从m到n
程序员文章站
2022-06-17 18:32:43
...
头插法
/**
* 链表头插法
* @param head
* @param m
* @param n
* @return
*/
//头插法 100%
public ListNode reverseBetween(ListNode head, int m, int n){
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
//将g移动到第一个要反转的节点的前面,将p移动到第一个要反转的节点的位置上
ListNode g = dummyHead;
ListNode p = head;
for(int i=0;i<m-1;i++){
g=g.next;
p=p.next;
}
//头插法
for(int i=0;i<n-m;i++){
//p后面的元素
ListNode removed = p.next;
//将p后面的元素删除
p.next=p.next.next;
//将删除的元素添加到g的后面
removed.next=g.next;
g.next = removed;
}
return dummyHead.next;
}
上一篇: iOS中几种定时器的实现小结
下一篇: 多功能智慧灯杆国家标准征求意见稿