【发布时间】:2016-06-07 02:06:13
【问题描述】:
这里是二叉树路径问题: 给定一棵二叉树,返回所有从根到叶的路径。
例如,给定以下二叉树:
1
/ \
2 3
\
5
所有从根到叶的路径是:
["1->2->5", "1->3"]
这是我的 Javascript 代码:
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {string[]}
*/
var binaryTreePaths = function(root) {
var paths = [];
if(!root) return [];
if(root.left == null && root.right == null){
if(paths.length == 0) return [""+root.val];
else return root.val;
}
else{
if(root.left) paths.push(root.val + "->" + binaryTreePaths(root.left))
if(root.right) paths.push(root.val + "->" + binaryTreePaths(root.right))
}
return paths;
};
测试用例:
输入:
[1,2,3,5,6]
输出:
["1->2->5,2->6","1->3"]
预期:
["1->2->5","1->2->6","1->3"]
为什么我的代码输出没有返回 "1->2->6" 的完整路径?
【问题讨论】:
-
您的代码似乎期望树看起来像具有
.left和.right属性的对象,但您说输入是一个简单的数组。
标签: javascript tree