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; } }
The above is the detailed content of Odd-even LinkedList. For more information, please follow other related articles on the PHP Chinese website!