class
GFG{
static
class
node
{
char
data;
node next;
};
static
node add(
char
data)
{
node newnode =
new
node();
newnode.data = data;
newnode.next =
null
;
return
newnode;
}
static
node addinll(node head,
char
data)
{
if
(head ==
null
)
head = add(data);
else
{
node curr = head;
while
(curr.next !=
null
)
curr = curr.next;
curr.next = add(data);
}
return
head;
}
static
void
print(node head)
{
node curr = head;
while
(curr !=
null
)
{
System.out.print(curr.data +
" -> "
);
curr = curr.next;
}
System.out.print(
"NULL"
);
}
static
boolean
isvowel(
char
data)
{
if
(data ==
'a'
|| data ==
'e'
||
data ==
'i'
|| data ==
'o'
||
data ==
'u'
)
return
true
;
if
(data ==
'A'
|| data ==
'E'
||
data ==
'I'
|| data ==
'O'
||
data ==
'U'
)
return
true
;
return
false
;
}
static
void
reversevowels(node head)
{
node first =
null
;
node curr = head;
while
(curr !=
null
)
{
if
(isvowel(curr.data) && first ==
null
)
first = curr;
else
if
(isvowel(curr.data) && first !=
null
)
{
swap(first.data, curr.data);
first =
null
;
}
curr = curr.next;
}
}
private
static
void
swap(
char
data,
char
data2)
{
char
newdata = data;
data = data2;
data2 = newdata;
}
public
static
void
main(String[] args)
{
String s =
"geeks"
;
node head =
null
;
for
(
int
i =
0
; i < s.length(); i++)
head = addinll(head, s.charAt(i));
reversevowels(head);
print(head);
}
}