给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
输出: [“1->2->5”, “1->3”]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
/**
* 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 binaryTreePaths = function(root) {
if(root === null){
return [];
}
var result = [];
//遍历函数
function bianli(node , str){
if(node === null){
return;
}
str = str + '->' + node.val;
bianli(node.left , str);
bianli(node.right , str);
//如果到达叶节点则将str放进result
if(node.right === null && node.left === null){
result.push(str);
}
}
bianli(root , "");
//result中每个元素都是'->'开头,如'->1->2->5',我们要将前面两个字符去掉
result.forEach((element , index) => {
result[index] = element.substring(2);
});
return result;
};