Odd-even LinkedList

RMAG news

Problem

We have to keep index i tracking the node values if i is odd then put them in a different say odd, else put them in a list say even.
At the end connect the last node of the odd list to head of even list

/**
* 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) {
ListNode odd = new ListNode(0);
ListNode even = new ListNode(0);
ListNode pointerOfOdd = odd;
ListNode pointerOfEven = even;
int i =1;
while(head!=null){
if(i%2!=0){
odd.next = new ListNode(head.val);
odd = odd.next;
}
else{
even.next = new ListNode(head.val);
even = even.next;
}
i++;
head = head.next;
}
odd.next = pointerOfEven.next;

return pointerOfOdd.next;
}
}

Please follow and like us:
Pin Share