Skip to content

Commit 2f92d64

Browse files
committed
feat: add solutions to lc problem: No.0328.Odd Even Linked List
1 parent f753328 commit 2f92d64

File tree

8 files changed

+381
-149
lines changed

8 files changed

+381
-149
lines changed

solution/0300-0399/0328.Odd Even Linked List/README.md

+65-5
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ class Solution:
4949
def oddEvenList(self, head: ListNode) -> ListNode:
5050
if head is None:
5151
return head
52-
evenHead = head.next
53-
odd, even = head, evenHead
52+
odd, even = head, head.next
53+
even_head = even
5454
while even and even.next:
5555
odd.next = even.next
5656
odd = odd.next
5757
even.next = odd.next
5858
even = even.next
59-
odd.next = evenHead
59+
odd.next = even_head
6060
return head
6161
```
6262

@@ -80,8 +80,8 @@ class Solution {
8080
if (head == null) {
8181
return head;
8282
}
83-
ListNode evenHead = head.next;
84-
ListNode odd = head, even = evenHead;
83+
ListNode odd = head, even = head.next;
84+
ListNode evenHead = even;
8585
while (even != null && even.next != null) {
8686
odd.next = even.next;
8787
odd = odd.next;
@@ -94,6 +94,66 @@ class Solution {
9494
}
9595
```
9696

97+
### **C++**
98+
99+
```cpp
100+
/**
101+
* Definition for singly-linked list.
102+
* struct ListNode {
103+
* int val;
104+
* ListNode *next;
105+
* ListNode() : val(0), next(nullptr) {}
106+
* ListNode(int x) : val(x), next(nullptr) {}
107+
* ListNode(int x, ListNode *next) : val(x), next(next) {}
108+
* };
109+
*/
110+
class Solution {
111+
public:
112+
ListNode* oddEvenList(ListNode* head) {
113+
if (!head) {
114+
return head;
115+
}
116+
ListNode *odd = head, *even = head->next;
117+
ListNode *evenHead = even;
118+
while (even && even->next) {
119+
odd->next = even->next;
120+
odd = odd->next;
121+
even->next = odd->next;
122+
even = even->next;
123+
}
124+
odd->next = evenHead;
125+
return head;
126+
}
127+
};
128+
```
129+
130+
### **Go**
131+
132+
```go
133+
/**
134+
* Definition for singly-linked list.
135+
* type ListNode struct {
136+
* Val int
137+
* Next *ListNode
138+
* }
139+
*/
140+
func oddEvenList(head *ListNode) *ListNode {
141+
if head == nil {
142+
return head
143+
}
144+
odd, even := head, head.Next
145+
evenHead := even
146+
for even != nil && even.Next != nil {
147+
odd.Next = even.Next
148+
odd = odd.Next
149+
even.Next = odd.Next
150+
even = even.Next
151+
}
152+
odd.Next = evenHead
153+
return head
154+
}
155+
```
156+
97157
### **...**
98158

99159
```

solution/0300-0399/0328.Odd Even Linked List/README_EN.md

+65-5
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ class Solution:
5252
def oddEvenList(self, head: ListNode) -> ListNode:
5353
if head is None:
5454
return head
55-
evenHead = head.next
56-
odd, even = head, evenHead
55+
odd, even = head, head.next
56+
even_head = even
5757
while even and even.next:
5858
odd.next = even.next
5959
odd = odd.next
6060
even.next = odd.next
6161
even = even.next
62-
odd.next = evenHead
62+
odd.next = even_head
6363
return head
6464
```
6565

@@ -81,8 +81,8 @@ class Solution {
8181
if (head == null) {
8282
return head;
8383
}
84-
ListNode evenHead = head.next;
85-
ListNode odd = head, even = evenHead;
84+
ListNode odd = head, even = head.next;
85+
ListNode evenHead = even;
8686
while (even != null && even.next != null) {
8787
odd.next = even.next;
8888
odd = odd.next;
@@ -95,6 +95,66 @@ class Solution {
9595
}
9696
```
9797

98+
### **C++**
99+
100+
```cpp
101+
/**
102+
* Definition for singly-linked list.
103+
* struct ListNode {
104+
* int val;
105+
* ListNode *next;
106+
* ListNode() : val(0), next(nullptr) {}
107+
* ListNode(int x) : val(x), next(nullptr) {}
108+
* ListNode(int x, ListNode *next) : val(x), next(next) {}
109+
* };
110+
*/
111+
class Solution {
112+
public:
113+
ListNode* oddEvenList(ListNode* head) {
114+
if (!head) {
115+
return head;
116+
}
117+
ListNode *odd = head, *even = head->next;
118+
ListNode *evenHead = even;
119+
while (even && even->next) {
120+
odd->next = even->next;
121+
odd = odd->next;
122+
even->next = odd->next;
123+
even = even->next;
124+
}
125+
odd->next = evenHead;
126+
return head;
127+
}
128+
};
129+
```
130+
131+
### **Go**
132+
133+
```go
134+
/**
135+
* Definition for singly-linked list.
136+
* type ListNode struct {
137+
* Val int
138+
* Next *ListNode
139+
* }
140+
*/
141+
func oddEvenList(head *ListNode) *ListNode {
142+
if head == nil {
143+
return head
144+
}
145+
odd, even := head, head.Next
146+
evenHead := even
147+
for even != nil && even.Next != nil {
148+
odd.Next = even.Next
149+
odd = odd.Next
150+
even.Next = odd.Next
151+
even = even.Next
152+
}
153+
odd.Next = evenHead
154+
return head
155+
}
156+
```
157+
98158
### **...**
99159

100160
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* struct ListNode {
4+
* int val;
5+
* ListNode *next;
6+
* ListNode() : val(0), next(nullptr) {}
7+
* ListNode(int x) : val(x), next(nullptr) {}
8+
* ListNode(int x, ListNode *next) : val(x), next(next) {}
9+
* };
10+
*/
11+
class Solution {
12+
public:
13+
ListNode* oddEvenList(ListNode* head) {
14+
if (!head) {
15+
return head;
16+
}
17+
ListNode *odd = head, *even = head->next;
18+
ListNode *evenHead = even;
19+
while (even && even->next) {
20+
odd->next = even->next;
21+
odd = odd->next;
22+
even->next = odd->next;
23+
even = even->next;
24+
}
25+
odd->next = evenHead;
26+
return head;
27+
}
28+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* type ListNode struct {
4+
* Val int
5+
* Next *ListNode
6+
* }
7+
*/
8+
func oddEvenList(head *ListNode) *ListNode {
9+
if head == nil {
10+
return head
11+
}
12+
odd, even := head, head.Next
13+
evenHead := even
14+
for even != nil && even.Next != nil {
15+
odd.Next = even.Next
16+
odd = odd.Next
17+
even.Next = odd.Next
18+
even = even.Next
19+
}
20+
odd.Next = evenHead
21+
return head
22+
}

solution/0300-0399/0328.Odd Even Linked List/Solution.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public ListNode oddEvenList(ListNode head) {
1313
if (head == null) {
1414
return head;
1515
}
16-
ListNode evenHead = head.next;
17-
ListNode odd = head, even = evenHead;
16+
ListNode odd = head, even = head.next;
17+
ListNode evenHead = even;
1818
while (even != null && even.next != null) {
1919
odd.next = even.next;
2020
odd = odd.next;

solution/0300-0399/0328.Odd Even Linked List/Solution.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ class Solution:
77
def oddEvenList(self, head: ListNode) -> ListNode:
88
if head is None:
99
return head
10-
evenHead = head.next
11-
odd, even = head, evenHead
10+
odd, even = head, head.next
11+
even_head = even
1212
while even and even.next:
1313
odd.next = even.next
1414
odd = odd.next
1515
even.next = odd.next
1616
even = even.next
17-
odd.next = evenHead
17+
odd.next = even_head
1818
return head

solution/1800-1899/1843.Suspicious Bank Accounts/README.md

+2-16
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,11 @@ None
1414

1515
<!-- tabs:start -->
1616

17-
### **Python3**
17+
### **SQL**
1818

1919
<!-- 这里可写当前语言的特殊实现逻辑 -->
2020

21-
```python
22-
23-
```
24-
25-
### **Java**
26-
27-
<!-- 这里可写当前语言的特殊实现逻辑 -->
28-
29-
```java
30-
31-
```
32-
33-
### **...**
34-
35-
```
21+
```sql
3622

3723
```
3824

0 commit comments

Comments
 (0)