Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose:
Finds the shortest path between a source and target node in an unweighted graph.
Approach:
Runs two simultaneous BFS searches — one from the source and one from the target — until both meet.
Initialization:
Sets up two queues, two visited lists, and two parent arrays for tracking paths.
Search Process:
Expands nodes alternately from both sides and checks for a meeting node (common visited vertex).
Path Reconstruction:
Once the meeting node is found, it traces back to form the complete shortest path from source to target.
Output:
Returns the path, distance (number of edges), and a flag found = TRUE if a path exists.
Complexity:
Time: O(b^(d/2)) → faster than normal BFS
Space: O(V)