<style>
html, body, .ui-content {
background: #222222;
color: #00BFFF;
}
/* 設定 code 模板 */
.markdown-body code,
.markdown-body tt {
background-color: #ffffff36;
}
.markdown-body .highlight pre,
.markdown-body pre {
color: #ddd;
background-color: #00000036;
}
.hljs-tag {
color: #ddd;
}
.token.operator {
background-color: transparent;
}
</style>
###### tags: `Leetcode`
# 1443. Minimum Time to Collect All Apples in a Tree
###### Link : https://leetcode.com/problems/minimum-time-to-collect-all-apples-in-a-tree/
## 題目
最短路徑找到所有蘋果
## 程式碼
```cpp=
class Solution {
public:
int DFS(int node, int parent, vector<vector<int>>& adj, vector<bool>& hasApple){
int childtime = 0, totaltime = 0;
for(auto& child:adj[node]){
if(child == parent)
continue;
childtime = DFS(child, node, adj, hasApple);
if(childtime || hasApple[child]) totaltime += childtime + 2;
}
return totaltime;
}
int minTime(int n, vector<vector<int>>& edges, vector<bool>& hasApple) {
vector<vector<int>> adj(n);
for(auto& edge : edges){
adj[edge[0]].push_back(edge[1]);
adj[edge[1]].push_back(edge[0]);
}
return DFS(0, -1, adj, hasApple);
}
};
```