import
java.util.HashMap;
import
java.util.Map;
public
class
Main {
static
class
Node {
int
data;
Node next;
Node(
int
value)
{
data = value;
next =
null
;
}
}
static
int
findMode(Node head)
{
Map<Integer, Integer> freq =
new
HashMap<>();
int
maxFreq =
0
;
Node curr = head;
while
(curr !=
null
) {
freq.put(curr.data, freq.getOrDefault(curr.data,
0
) +
1
);
maxFreq = Math.max(maxFreq, freq.get(curr.data));
curr = curr.next;
}
curr = head;
int
mode =
0
;
while
(curr !=
null
) {
if
(freq.get(curr.data) == maxFreq) {
mode = curr.data;
break
;
}
curr = curr.next;
}
return
mode;
}
public
static
void
main(String[] args)
{
Node head =
new
Node(
1
);
head.next =
new
Node(
2
);
head.next.next =
new
Node(
3
);
head.next.next.next =
new
Node(
2
);
head.next.next.next.next =
new
Node(
4
);
head.next.next.next.next.next =
new
Node(
3
);
head.next.next.next.next.next.next =
new
Node(
2
);
head.next.next.next.next.next.next.next =
new
Node(
5
);
head.next.next.next.next.next.next.next.next =
null
;
int
mode = findMode(head);
System.out.println(
"Mode: "
+ mode);
}
}