Given an adjacency list `adj` (where `adj[i]` lists neighbors of node `i`) and a `start` node, implement `bfs(adj, start)` returning the order nodes are visited by breadth-first search. Visit neighbors in listed order.
+ 1 hidden test run on Submit.
BFS explores level by level with a queue. O(V + E) time.
Run your code to see results.