Skip to content

Commit dfa38c9

Browse files
add 2074
1 parent 4c0c819 commit dfa38c9

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ _If you like this project, please leave me a star._ ★
88

99
| # | Title | Solutions | Video | Difficulty | Tag
1010
|-----|----------------|---------------|--------|-------------|-------------
11+
|2074|[Reverse Nodes in Even Length Groups](https://leetcode.com/problems/reverse-nodes-in-even-length-groups/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2074.java) ||Medium||
1112
|2073|[Time Needed to Buy Tickets](https://leetcode.com/problems/time-needed-to-buy-tickets/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2073.java) ||Easy||
1213
|2070|[Most Beautiful Item for Each Query](https://leetcode.com/problems/most-beautiful-item-for-each-query/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2070.java) ||Medium||
1314
|2068|[Check Whether Two Strings are Almost Equivalent](https://leetcode.com/problems/check-whether-two-strings-are-almost-equivalent/)|[Java](../master/src/main/java/com/fishercoder/solutions/_2068.java) ||Easy||
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.fishercoder.solutions;
2+
3+
import com.fishercoder.common.classes.ListNode;
4+
5+
import java.util.ArrayList;
6+
import java.util.Collections;
7+
import java.util.List;
8+
9+
public class _2074 {
10+
public static class Solution1 {
11+
public ListNode reverseEvenLengthGroups(ListNode head) {
12+
List<Integer> list = new ArrayList<>();
13+
ListNode tmp = head;
14+
while (tmp != null) {
15+
list.add(tmp.val);
16+
tmp = tmp.next;
17+
}
18+
int len = 1;
19+
int start = 0;
20+
List<Integer> reversed = new ArrayList<>();
21+
while (start + len <= list.size()) {
22+
if (len % 2 == 0) {
23+
List<Integer> sub = list.subList(start, start + len);
24+
Collections.reverse(sub);
25+
reversed.addAll(sub);
26+
} else {
27+
reversed.addAll(list.subList(start, start + len));
28+
}
29+
start += len;
30+
len++;
31+
}
32+
if (start < list.size()) {
33+
List<Integer> sublist = list.subList(start, list.size());
34+
if (sublist.size() % 2 == 0) {
35+
Collections.reverse(sublist);
36+
}
37+
reversed.addAll(sublist);
38+
}
39+
ListNode pre = new ListNode(-1);
40+
head = new ListNode(reversed.get(0));
41+
pre.next = head;
42+
for (int i = 1; i < reversed.size(); i++) {
43+
head.next = new ListNode(reversed.get(i));
44+
head = head.next;
45+
}
46+
return pre.next;
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)