if(bfs(u, adj, visited,v));
return true;
имеет дополнительный ';' после оператора 'if', который заставляет его выполнить пустой оператор (точку с запятой), если bfs () возвращает true, или ничего (так как нет 'else'), если bfs () возвращает false.
This сопровождаемый 'возвращают истину', который выполняется безоговорочно.
Возможно это предназначено:
if(bfs(u, adj, visited,v)) // No semicolon here
return true;