我有一个$ branch对象,可以包含其他$ branch对象:
$branch->children();
Run Code Online (Sandbox Code Playgroud)
他们每个人都可以有$ apple作为孩子。
$branch->apples();
Run Code Online (Sandbox Code Playgroud)
如何从$ branch递归收集所有$ apples?
function collectApples($branch){
$apples = array();
?
return $apples;
}
Run Code Online (Sandbox Code Playgroud)
使用DFS收集特定分支的所有苹果:
function collectApples($branch) {
$apples = $branch->apples();
foreach ($branch->children() as $child) {
$apples = array_merge($apples, collectApples($child));
}
return $apples;
}
Run Code Online (Sandbox Code Playgroud)