package com.interview.linklist; /** * http://www.geeksforgeeks.org/delete-n-nodes-after-m-nodes-of-a-linked-list/ * Test cases: * neg value of m and/or n - not allowed * 0 value of n and/or m - not allowed * even n and m * odd n and m * odd size of the list * even size of the list */ public class DeleteNAfterMNodes { public void deleteNAfterMNodes(Node head,int m, int n){ if(head == null){ return; } while(head != null){ int i = 0; while(head != null && i < m-1){ head = head.next; i++; } if(head == null){ break; } Node temp = head.next; i=0; while(temp != null && i < n){ temp = temp.next; i++; } head.next = temp; head = temp; } } public static void main(String args[]){ DeleteNAfterMNodes daf = new DeleteNAfterMNodes(); LinkList ll = new LinkList(); Node head = null; head = ll.addNode(1, head); head = ll.addNode(2, head); head = ll.addNode(3, head); head = ll.addNode(4, head); head = ll.addNode(5, head); head = ll.addNode(6, head); daf.deleteNAfterMNodes(head, 3, 2); ll.printList(head); } }