257. Binary Tree Paths
Leetcode
https://leetcode.com/problems/binary-tree-paths/
題目
Given the root of a binary tree, return all root-to-leaf paths in any order.
A leaf is a node with no children.
Example 1:

Input: root = [1,2,3,null,5]
Output: ["1->2->5","1->3"]Example 2:
Input: root = [1]
Output: ["1"]è§£ç”
方法一
Iteration
var binaryTreePaths = function(root) {
if(root === null) return [];
const res = [];
const queue = [{
val: [],
node: root
}];
while(queue.length) {
const curr = queue.shift();
const node = curr.node;
const val = [...curr.val, node.val];
if (!node.left && !node.right) res.push(val.join('->'));
if (node.left) {
queue.push({
val,
node: node.left
})
}
if (node.right) {
queue.push({
val,
node: node.right
})
}
}
return res;
};Runtime: 90 ms, faster than 51.28% of JavaScript online submissions for Binary Tree Paths.
Memory Usage: 44.6 MB, less than 8.23% of JavaScript online submissions for Binary Tree Paths.
方法二
Recursion
var binaryTreePaths = function(root) {
const res = [];
const helper = (node, path) => {
if (!node) return;
path += node.val.toString();
if (!node.left && !node.right) res.push(path);
path += "->"
helper(node.left, path);
helper(node.right, path);
}
helper(root, '');
return res;
};Runtime: 142 ms, faster than 5.13% of JavaScript online submissions for Binary Tree Paths.
Memory Usage: 43.4 MB, less than 73.18% of JavaScript online submissions for Binary Tree Paths.
Last updated
Was this helpful?