Odd Even Linked List

   public ListNode oddEvenList(ListNode head) {
        if (head == null) return null;

        ListNode dummy1 = new ListNode(-1);
        ListNode dummy2 = new ListNode(-2);
        ListNode p = dummy1, q = dummy2, curr = head;

        int counter = 0;
        while (curr != null) {
            ListNode tmp = curr.next;
            if (counter % 2 == 0) {
                p.next = curr;
                p = p.next;
                p.next = null;
            } else {
                q.next = curr;
                q = q.next;
                q.next = null;
            }
            counter++;
            curr = tmp;
        }

        p.next = dummy2.next;

        return dummy1.next;
    }

results matching ""

    No results matching ""