import
java.util.*;
class
GFG
{
static
class
Node
{
int
data;
Node next;
};
static
Node getNode(
int
data)
{
Node newNode =
new
Node();
newNode.data = data;
newNode.next =
null
;
return
newNode;
}
static
Node deleteDivisibleNodes(Node head_ref,
int
K)
{
Node temp = head_ref, prev =
null
;
while
(temp !=
null
&& temp.data % K ==
0
)
{
head_ref = temp.next;
temp = head_ref;
}
while
(temp !=
null
)
{
while
(temp !=
null
&& temp.data % K !=
0
)
{
prev = temp;
temp = temp.next;
}
if
(temp ==
null
)
return
head_ref;
prev.next = temp.next;
temp = prev.next;
}
return
null
;
}
static
void
printList(Node head)
{
while
(head !=
null
)
{
System.out.print(head.data +
" "
);
head = head.next;
}
}
public
static
void
main(String[] args)
{
Node head = getNode(
12
);
head.next = getNode(
15
);
head.next.next = getNode(
9
);
head.next.next.next = getNode(
11
);
head.next.next.next.next = getNode(
5
);
head.next.next.next.next.next = getNode(
6
);
head.next.next.next.next.next.next = getNode(
7
);
int
K =
3
;
System.out.print(
"Initial List: "
);
printList(head);
head = deleteDivisibleNodes(head, K);
System.out.print(
"\nFinal List: "
);
printList(head);
}
}