码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] 257. Binary Tree Paths

时间:2020-01-12 13:25:09      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:put   example   www   return   例子   htm   treenode   需要   Plan   

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

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

标签:put   example   www   return   例子   htm   treenode   需要   Plan   

原文地址:https://www.cnblogs.com/aaronliu1991/p/12182287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!