javascript - 使用递归的 N 元树后序遍历
问题描述
使用递归处理 n 元树遍历的问题时,我在理解别人的解决方案的一部分时遇到了一些困难。
基本上这是我的问题。
if(root === null){
return [];
}
let arr = [];
traverse(root);
function traverse(root){
if(root.children === null){
arr.push(root.val);
return;
}
for(let i = 0; i < root.children.length; i++){
traverse(root.children[i]);
console.log(arr);
}
arr.push(root.val);
}
return arr;
对于基本情况,我正在检查是否要找到给定节点的子节点,如果没有,我将它们添加到数组中。我不明白的是某些解决方案不使用 push() 而只是返回 arr?这对我来说看起来很奇怪,但这样的解决方案也很有效。
有人可以解释一下我们怎么可能只返回数组(arr)而不显式地将节点值添加到它这个解决方案仍然有效?
更新
这让我感到困惑。
if(root.children === null){
return arr;
}
解决方案
推荐阅读
- javascript - 如何从两步的文件中导入上下文
- angular - DSpace 7.0 在哪里放置自定义 CSS 和 Javascript?
- kubernetes - configmaps are not passing properly to the containers
- python - 使用 BeautifulSoup 从评论中提取表格数据
- spring-boot - Spring Boot webapp 启动失败
- angular - 如何使用消息 ID 按主题从 FCM 获取成功传递计数
- postgresql - 如何获取当前查询的 postgresql 错误代码
- shell - 使用 curl 在变量中执行 SQL 命令
- python - TypeError:必须是实数,而不是复数上的 str
- powershell - 在 PS-Session 中将输出写入文件