public ListNode reverseEvenLengthGroups(ListNode root) {
int len = 1;
ListNode ans = new ListNode();
ans.next = root;
int i = 0;
ListNode last = root;
while (root != null) {
ListNode head = root;
ListNode pre = head;
while (head != null && i < len) {
pre = head;
head = head.next;
i++;
}
if (i % 2 == 0) {
ListNode[] tuple = reverse(root, last, i);
root = tuple[0];
last = tuple[1];
}else{
last = pre;
root = head;
}
len++;
i = 0;
}
return ans.next;
}
public ListNode[] reverse(ListNode root,ListNode last, int len) {
int i = 0;
ListNode tail = root;
ListNode head = root;
root = root.next;
i++;
while (root != null && i < len) {
ListNode temp = root;
root = root.next;
temp.next = head;
head = temp;
i++;
}
last.next = head;
tail.next = root;
return new ListNode[]{root, last};
}
lc-2074
原创wx5be5864e766ab 博主文章分类:java ©著作权
©著作权归作者所有:来自51CTO博客作者wx5be5864e766ab的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
hdu 2074 叠筐
Problem Description需要的时候,就把一个个大小差一圈的筐叠上去,使得从上
hdu i++ #include java -
HDU2074 叠筐【图形打印】
题目大意:打印一个两种花色层层交错的图形。给你最外环的尺寸N和两个字符表示花色A(中心花色)、B(外环花色)
#include ios 字符数组 -
LC——移动零
LC——移动零题目链接:https://
leetcode 算法 双指针