[LeetCode] 257. Binary Tree Paths

Posted aaronliu1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 257. Binary Tree Paths相关的知识,希望对你有一定的参考价值。

二叉树路径。题意是给一个二叉树,请输出从根节点遍历到每个最小的叶子节点的路径。例子

Example:

Input:

   1
 /   2     3
   5

Output: ["1->2->5", "1->3"]

Explanation: All root-to-leaf paths are: 1->2->5, 1->3

此题可以用二叉树的先序遍历的思想做,参见144题。我给出的是递归的解法。

时间O(n)

空间O(n)

此处解释一下helper函数。14行如果再也没有左右孩子了,就直接把当前节点的值加入结果集;如果还有左孩子(17行)或者右孩子(20行),递归的参数就需要加上"->"。因为知道后面还会再加上孩子节点的值。

 1 /**
 2  * @param {TreeNode} root
 3  * @return {string[]}
 4  */
 5 var binaryTreePaths = function(root) {
 6     let res = [];
 7     if (root === null) return res;
 8     // normal case
 9     helper(res, root, ‘‘);
10     return res;
11 };
12 
13 var helper = function(res, root, path) {
14     if (root.left === null && root.right === null) {
15         res.push(path + root.val);
16     }
17     if (root.left !== null) {
18         helper(res, root.left, path + root.val + ‘->‘);
19     }
20     if (root.right !== null) {
21         helper(res, root.right, path + root.val + ‘->‘);
22     }
23 };

以上是关于[LeetCode] 257. Binary Tree Paths的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode257]Binary Tree Paths

LeetCode 257. Binary Tree Paths

Java [Leetcode 257]Binary Tree Paths

leetcode?python 257. Binary Tree Paths

leetcode 257. Binary Tree Paths

Leetcode 257: Binary Tree Paths