当前位置:网站首页>Leetcode exercise - 113 Path sum II
Leetcode exercise - 113 Path sum II
2022-07-07 10:11:00 【SK_ Jaco】
1. Title Description
113. The sum of the paths II
Give you the root node of the binary tree root And an integer target and targetSum , Find out all From the root node to the leaf node The path sum is equal to the given target sum .
Leaf node A node without children .
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]]
Example 2:
Input :root = [1,2,3], targetSum = 5
Output :[]
Example 3:
Input :root = [1,2], targetSum = 0
Output :[]
2. Problem solving ideas and codes
2.1 Their thinking
This problem is to find the path from the root node to the upper sum of the leaf node as the target , You can use preorder traversal for processing . When the node is not a leaf node , Put the current node into the path list , And the target value minus the current node value ; If the current node is a leaf node , You need to judge target Is it 0, If it is 0, Then put the current path into the result list ; If not 0, Then return to . After processing the left and right nodes, you need to delete the current node from the path list . Take the topic as an example 1 As an example :
First, traverse the binary tree downward from the root node , Put the current node into the path list , meanwhile target Subtract the current node value .
When traversing the leaf node , Judge target Is it 0, Not at this time 0, Therefore, this path does not meet the requirements , Return to the previous node .
When returning, you need to remove the current node from the path list , Then continue down to 2 This node . here target be equal to 0, Meet the requirements , take [5, 4, 11, 2] This path is put into the result . Repeat the above steps and continue to traverse until the end .
2.2 Code
class Solution {
List<List<Integer>> ans = new ArrayList<>();
public List<List<Integer>> pathSum(TreeNode root, int target) {
if (root == null) {
return ans;
}
process(root, new ArrayList<>(), target);
return ans;
}
public void process(TreeNode root, List<Integer> tmp, int target) {
if (root == null) {
return;
}
tmp.add(root.val);
target -= root.val;
if (root.left == null && root.right == null && target == 0){
// If the current node is a leaf node , also target be equal to 0, Put the path into the result list
ans.add(new ArrayList<>(tmp));
}
process(root.left, tmp, target);
process(root.right, tmp, target);
// After processing the left and right nodes, remove the current node from the path list
tmp.remove(tmp.size() - 1);
}
}
2.3 test result
Pass the test 
3. summary
- Use preorder traversal to solve
- Each node needs to move the current node out of the path list after processing the left and right nodes
边栏推荐
- Video based full link Intelligent Cloud? This article explains in detail what Alibaba cloud video cloud "intelligent media production" is
- Pit using BigDecimal
- 单片机(MCU)最强科普(万字总结,值得收藏)
- ArcGIS operation: converting DWG data to SHP data
- [untitled]
- fiddler-AutoResponder
- ORM -- grouping query, aggregation query, query set queryset object properties
- [ORM framework]
- ORM--逻辑关系与&或;排序操作,更新记录操作,删除记录操作
- 2016 CCPC Hangzhou Onsite
猜你喜欢

arcgis操作:dwg数据转为shp数据

ORM model -- associated fields, abstract model classes

Applet popup half angle mask layer

Postman interface test IV

Fiddler break point

官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展

Pit using BigDecimal

ORM model -- creation and query of data records

The request object parses the request body and request header parameters

字节跳动 Kitex 在森马电商场景的落地实践
随机推荐
Bean operation domain and life cycle
Advanced function learning in ES6
虚数j的物理意义
Hcip first day notes sorting
Bit operation ==c language 2
Enterprise practice | construction of banking operation and maintenance index system under complex business relations
Introduction to uboot
Delete a record in the table in pl/sql by mistake, and the recovery method
内存==c语言1
conda离线创建虚拟环境
Do you have a boss to help look at this error report and what troubleshooting ideas are there? Oracle CDC 2.2.1 flick 1.14.4
In addition to the objective reasons for overtime, what else is worth thinking about?
Please ask me a question. I started a synchronization task with SQL client. From Mysql to ADB, the historical data has been synchronized normally
Guid主键
CDZSC_ 2022 winter vacation personal training match level 21 (1)
C socke server, client, UDP
Google colab loads Google drive (Google drive is used in Google colab)
Using keras in tensorflow to build convolutional neural network
Bean 作⽤域和⽣命周期
官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展