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

[LeetCode] 113. Path Sum II

时间:2020-01-12 14:56:50      阅读:47      评论:0      收藏:0      [点我收藏+]

标签:例子   path sum   return   https   class   条件   target   ===   list   

二叉树的路径和二。题意跟版本一很接近,唯一的不同是版本一只是问是否有满足条件的路径;版本二是输出所有满足条件的路径和。例子,

Example:

Given the below binary tree and sum = 22,

      5
     /     4   8
   /   /   11  13  4
 /  \    / 7    2  5   1

Return:

[
   [5,4,11,2],
   [5,8,4,5]
]

这题我只会用DFS做。代码如下,

时间O(n)

空间O(n)

注意21行为什么要将最后一个节点弹出。我举个例子,比如5,4,11,7都加入list之后,发现5+4+11+7 != 22,此刻一定要将7删除,才能接着去看右子树(2),否则在做右子树递归的时候,最后的加法是5+4+11+7+2。

 1 /**
 2  * @param {TreeNode} root
 3  * @param {number} sum
 4  * @return {number[][]}
 5  */
 6 var pathSum = function(root, sum) {
 7     let res = [];
 8     if (root === null) return res;
 9     helper(res, [], root, sum);
10     return res;
11 };
12 
13 var helper = function(res, list, root, sum) {
14     if (root) {
15         list.push(root.val);
16         if (!root.left && !root.right && sum - root.val === 0) {
17             res.push([...list]);
18         }
19         helper(res, list, root.left, sum - root.val);
20         helper(res, list, root.right, sum - root.val);
21         list.pop();
22     }
23     return res;
24 };

[LeetCode] 113. Path Sum II

标签:例子   path sum   return   https   class   条件   target   ===   list   

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

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