Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1 / \ 2 3 \ 5
All root-to-leaf paths are:
["1->2->5", "1->3"]
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
Tags
Tree, DFS
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* 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) {
if (root === null) {
return [];
}
var ret = [];
binaryTreePathsBuilder(root, "", ret);
return ret;
};
function binaryTreePathsBuilder(node, path, ret) {
if (node.left === null && node.right === null) {
path = path + node.val;
ret.push(path);
return;
} else {
path = path + node.val + "->";
if (node.left) {
binaryTreePathsBuilder(node.left, path, ret)
}
if (node.right) {
binaryTreePathsBuilder(node.right, path, ret);
}
}
}