algorithm-base/animation-simulation/链表篇/leetcode328奇偶链表.md

131 lines
4.1 KiB
Java
Raw Normal View History

2021-03-21 04:10:31 +00:00
> **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
>
>
>
> <u>[****](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
### [328. ](https://leetcode-cn.com/problems/odd-even-linked-list/)
####
>
>
> 使 O(1) O(nodes)nodes
1:
> : 1->2->3->4->5->NULL
> : 1->3->5->2->4->NULL
2:
> : 2->1->3->5->6->4->7->NULL
> : 2->3->6->7->1->5->4->NULL
####
2021-07-15 16:06:52 +00:00
2021-03-21 04:10:31 +00:00
#### ****
![](https://img-blog.csdnimg.cn/20210321120150255.gif)
####
2021-04-28 10:28:00 +00:00
Java Code:
2021-03-21 04:10:31 +00:00
```java
class Solution {
public ListNode oddEvenList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode odd = head;
ListNode even = head.next;
2021-07-14 03:08:10 +00:00
ListNode evenHead = even;
2021-03-21 04:10:31 +00:00
while (odd.next != null && even.next != null) {
//将偶数位合在一起,奇数位合在一起
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
//链接
2021-07-14 03:08:10 +00:00
odd.next = evenHead;
2021-03-21 04:10:31 +00:00
return head;
}
}
```
2021-04-28 10:28:00 +00:00
C++ Code:
```cpp
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if (head == nullptr || head->next == nullptr) {
return head;
}
ListNode * odd = head;
ListNode * even = head->next;
2021-07-14 03:08:10 +00:00
ListNode * evenHead = even;
2021-04-28 10:28:00 +00:00
while (odd->next != nullptr && even->next != nullptr) {
//将偶数位合在一起,奇数位合在一起
odd->next = even->next;
odd = odd->next;
even->next = odd->next;
even = even->next;
}
//链接
2021-07-14 03:08:10 +00:00
odd->next = evenHead;
2021-04-28 10:28:00 +00:00
return head;
}
};
```
2021-05-04 20:13:37 +00:00
JS Code:
```javascript
var oddEvenList = function(head) {
if(!head || !head.next) return head;
let odd = head, even = head.next, evenHead = even;
while(odd.next && even.next){
2021-07-14 03:08:10 +00:00
//将偶数位合在一起,奇数位合在一起
2021-05-04 20:13:37 +00:00
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
2021-07-14 03:08:10 +00:00
//链接
2021-05-04 20:13:37 +00:00
odd.next = evenHead;
return head;
};
```
2021-07-14 03:08:10 +00:00
Python Code:
2021-07-15 16:06:52 +00:00
```python
2021-07-14 03:08:10 +00:00
class Solution:
def oddEvenList(self, head: ListNode) -> ListNode:
if head is None or head.next is None:
return head
odd = head
even = head.next
evenHead = even
while odd.next is not None and even.next is not None:
#
odd.next = even.next
odd = odd.next
even.next = odd.next
even = even.next
#
odd.next = evenHead
return head
```