Skip to content

Commit 6623491

Browse files
Merge pull request #383 from Kalpana8055/main
Day 14 q1: Amount of Time for Binary Tree to be Infected #350 solved
2 parents 8ec3520 + c25d9e3 commit 6623491

File tree

2 files changed

+51
-64
lines changed

2 files changed

+51
-64
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
class Solution {
2+
public:
3+
int amountOfTime(TreeNode* root, int start) {
4+
unordered_map<int, unordered_set<int>> map;
5+
convert(root, 0, map);
6+
queue<int> q;
7+
q.push(start);
8+
int minute = 0;
9+
unordered_set<int> visited;
10+
visited.insert(start);
11+
12+
while (!q.empty()) {
13+
int levelSize = q.size();
14+
while (levelSize > 0) {
15+
int current = q.front();
16+
q.pop();
17+
18+
for (int num : map[current]) {
19+
if (visited.find(num) == visited.end()) {
20+
visited.insert(num);
21+
q.push(num);
22+
}
23+
}
24+
levelSize--;
25+
}
26+
minute++;
27+
}
28+
return minute - 1;
29+
}
30+
31+
void convert(TreeNode* current, int parent, unordered_map<int, unordered_set<int>>& map) {
32+
if (current == nullptr) {
33+
return;
34+
}
35+
if (map.find(current->val) == map.end()) {
36+
map[current->val] = unordered_set<int>();
37+
}
38+
unordered_set<int>& adjacentList = map[current->val];
39+
if (parent != 0) {
40+
adjacentList.insert(parent);
41+
}
42+
if (current->left != nullptr) {
43+
adjacentList.insert(current->left->val);
44+
}
45+
if (current->right != nullptr) {
46+
adjacentList.insert(current->right->val);
47+
}
48+
convert(current->left, current->val, map);
49+
convert(current->right, current->val, map);
50+
}
51+
};

Day-14/q1: Amount of Time for Binary Tree to be Infected /solution.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)