当前位置:网站首页>#113 Path Sum II
#113 Path Sum II
2022-06-12 20:58:00 【yoyooyooo】
Description
Given the root of a binary tree and an integer targetSum, return all root-to-leaf paths where the sum of the node values in the path equals targetSum. Each path should be returned as a list of the node values, not node references.
A root-to-leaf path is a path starting from the root and ending at any leaf node. A leaf is a node with no children.
Examples
Example 1:
Input: root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
Output: [[5,4,11,2],[5,8,4,5]]
Explanation: There are two paths whose sum equals targetSum:
5 + 4 + 11 + 2 = 22
5 + 8 + 4 + 5 = 22
Example 2:
Input: root = [1,2,3], targetSum = 5
Output: []
Example 3:
Input: root = [1,2], targetSum = 0
Output: []
Constraints:
The number of nodes in the tree is in the range [0, 5000].
-1000 <= Node.val <= 1000
-1000 <= targetSum <= 1000
思路
我纠结的点在于用什么作为中间存储介质,后面建立了一个List<List<TreeNode>>
但是看到submission里面的解法之后,确实是还有改进的空间,下次重新试试
代码
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */
class Solution {
List<List<TreeNode>> all = new ArrayList<>();
List<List<Integer>> answer = new ArrayList<>();
public void addAnswer(int i) {
List<TreeNode> nodes = all.get(i);
List<Integer> sum = new ArrayList<>();
for (TreeNode node: nodes) {
sum.add(node.val);
}
answer.add(sum);
}
public void getSum(List<Integer> sum, int targetSum) {
if (all.size() == 0)
return;
List<List<TreeNode>> next = new ArrayList<>();
List<Integer> nextSum = new ArrayList<>();
for (int i = 0; i < all.size(); i++) {
List<TreeNode> nodes = all.get(i);
TreeNode node = nodes.get(nodes.size() - 1);
int currSum = sum.get(i);
if (node.left == null && node.right == null) {
if (currSum == targetSum) {
addAnswer(i);
}
continue;
}
if (node.left != null) {
List<TreeNode> newTmp = new ArrayList<>(nodes);
newTmp.add(node.left);
next.add(newTmp);
nextSum.add(currSum + node.left.val);
}
if (node.right != null) {
List<TreeNode> newTmp = new ArrayList<>(nodes);
newTmp.add(node.right);
next.add(newTmp);
nextSum.add(currSum + node.right.val);
}
}
all = next;
getSum(nextSum, targetSum);
}
public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
if (root == null)
return new ArrayList<>();
List<TreeNode> nodes = new ArrayList<>();
nodes.add(root);
all.add(nodes);
List<Integer> sum = new ArrayList<>();
sum.add(root.val);
getSum(sum, targetSum);
return answer;
}
}
边栏推荐
- Do we media video, and share the necessary app for friendly new media operation
- shell语言
- Integrated monitoring solution for power environment of small and medium-sized computer rooms
- MinIO客户端(mc命令)实现数据迁移
- Data visualization - broken line area chart
- To understand Devops, you must read these ten books!
- torch. unique()
- Double carbon in every direction: green demand and competition focus in the calculation from the east to the West
- torch. nn. Linear() function
- 设计规则检查约束(set_max_transition、set_max_capacitance)
猜你喜欢
Summary of machine learning materials
The required books for software testers (with e-books) recommended by senior Ali have benefited me a lot
A Zhu and Xu Baobao's high-rise game - difference
JSP中的监听器
Fcpx tutorial, how to export video graphics and text in Final Cut Pro?
[leetcode 16 solution] the sum of the nearest three numbers
Design rule check constraint (set_max_transition, set_max_capability)
What are the disadvantages of bone conduction earphones? Analysis of advantages and disadvantages of bone conduction earphones
How mysterious is "PIP not an internal or external command, nor a runnable program or batch file"
Solution of multi machine room dynamic loop status network touch screen monitoring
随机推荐
入行5年从10k的功能测试到年薪40w的测试开发,花7天时间整理的超全学习路线
Data visualization - broken line area chart
test
Data visualization - histogram
做自媒体视频,友好的新媒体运营必备app分享
Design and practice of Hudi bucket index in byte skipping
Nexus3搭建本地仓库
Research Report on market supply and demand and strategy of hydraulic operating table industry in China
Summary of machine learning materials
What are the disadvantages of bone conduction earphones? Analysis of advantages and disadvantages of bone conduction earphones
UVa11991 Easy Problem from Rujia Liu
remote: Support for password authentication was removed on August 13, 2021
DFT learning notes
torch. Finfo function
Detect current system language
Restful API interface specification
GPU giant NVIDIA suffered a "devastating" network attack, and the number one malware shut down its botnet infrastructure | global network security hotspot on February 28
pytorch transforms. Use of lambda
Pytoch distributed training error
How to improve communication efficiency during home office | community essay solicitation