parent
4be6716c46
commit
12e58d63aa
@ -0,0 +1,12 @@
|
|||||||
|
package 链表操作.q25_k个一组翻转链表;
|
||||||
|
|
||||||
|
|
||||||
|
public class ListNode {
|
||||||
|
int val;
|
||||||
|
ListNode next;
|
||||||
|
|
||||||
|
ListNode(int x) {
|
||||||
|
val = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
package 链表操作.q25_k个一组翻转链表;
|
||||||
|
|
||||||
|
public class Solution {
|
||||||
|
|
||||||
|
public ListNode reverseKGroup(ListNode head, int k) {
|
||||||
|
ListNode hair = new ListNode(0);
|
||||||
|
hair.next = head;
|
||||||
|
|
||||||
|
ListNode pre = hair;
|
||||||
|
ListNode end = hair;
|
||||||
|
|
||||||
|
while (end.next != null) {
|
||||||
|
for (int i = 0; i < k && end != null; i++){
|
||||||
|
end = end.next;
|
||||||
|
}
|
||||||
|
if (end == null){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ListNode start = pre.next;
|
||||||
|
ListNode next = end.next;
|
||||||
|
end.next = null;
|
||||||
|
pre.next = reverse(start);
|
||||||
|
start.next = next;
|
||||||
|
pre = start;
|
||||||
|
|
||||||
|
end = pre;
|
||||||
|
}
|
||||||
|
return hair.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ListNode reverse(ListNode head) {
|
||||||
|
ListNode pre = null;
|
||||||
|
ListNode curr = head;
|
||||||
|
while (curr != null) {
|
||||||
|
ListNode next = curr.next;
|
||||||
|
curr.next = pre;
|
||||||
|
pre = curr;
|
||||||
|
curr = next;
|
||||||
|
}
|
||||||
|
return pre;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue