-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDay16-OddEvenLinkedList.java
More file actions
34 lines (32 loc) · 1022 Bytes
/
Day16-OddEvenLinkedList.java
File metadata and controls
34 lines (32 loc) · 1022 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode oddEvenList(ListNode head) {
if(head==null || head.next==null) return head;
ListNode currentOdd=head;
ListNode evenHead=head.next;
ListNode currentEven=currentOdd.next;
while(currentOdd!=null && currentEven!=null){
if(currentOdd.next==currentEven){
currentOdd.next=currentEven.next;
if(currentOdd.next!=null){
currentOdd=currentOdd.next;
}
}
else{
currentEven.next=currentOdd.next;
currentEven=currentEven.next;
}
}
currentOdd.next=evenHead;
return head;
}
}