JavaScript 二叉树路径代码分析及优化
这段代码存在以下问题:
- 缺少 'str' 函数的定义,无法执行;
- for 循环中没有指定循环变量的初始值,会导致无法进入循环;
- for 循环中的条件应该是小于号(<)而不是 'in';
- 函数中使用了 'self' 关键字,但是没有定义 'self',应该使用 'this' 关键字代替;
- 函数名应该大写开头,符合函数命名规范。
var binaryTreePaths = function(root) {
if (!root) return []
if (!root.left && !root.right) { // 左右子树都没有的叶子结点
return [String(root.val)]
}
let paths = []
if (root.left){
for(let i = 0; i < this.binaryTreePaths(root.left).length; i++){
paths.push(String(root.val) + '->' + this.binaryTreePaths(root.left)[i])
}
}
if (root.right){
for(let i = 0; i < this.binaryTreePaths(root.right).length; i++){
paths.push(String(root.val) + '->' + this.binaryTreePaths(root.right)[i])
}
}
return paths
};
原文地址: https://www.cveoy.top/t/topic/n51e 著作权归作者所有。请勿转载和采集!