Jul 4, 2024
void dfs(int node, vector<vector<int>>& adjList, vector<bool>& visited, vector<int>& result) {
visited[node] = true;
result.push_back(node);
for (int neighbor : adjList[node]) {
if (!visited[neighbor]) {
dfs(neighbor, adjList, visited, result);
}
}
}
vector<int> dfsTraversal(int start, vector<vector<int>>& adjList) {
vector<int> result;
vector<bool> visited(adjList.size(), false);
dfs(start, adjList, visited, result);
return result;
}