当前位置:网站首页>剑指 Offer 34. 二叉树中和为某一值的路径-dfs法
剑指 Offer 34. 二叉树中和为某一值的路径-dfs法
2022-06-29 18:04:00 【Mr Gao】
剑指 Offer 34. 二叉树中和为某一值的路径
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
示例 1:
输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]
示例 2:
输入:root = [1,2,3], targetSum = 5
输出:[]
示例 3:
输入:root = [1,2], targetSum = 0
输出:[]
这题其实比较常规的,做的时候,注意一下,一些细节,总体使用深度优先遍历去解决这题,可以遍历每条路径,并相对保留路径信息:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */
/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */
int path[1000];
int size;
void dfs(struct TreeNode* root,int target,int path_now_size,int sum,int **re,int** returnColumnSizes){
// printf("sum %d ",sum);
if(root){
// printf("val %d path_now_size %d",root->val);
path[path_now_size]=root->val;
sum=sum+root->val;
if(sum==target&&root->left==NULL&&root->right==NULL){
re[size]=(int *)malloc(sizeof(int)*(path_now_size+1));
(*returnColumnSizes)[size]=path_now_size+1;
int i;
for(i=0;i<path_now_size+1;i++){
// printf("%d ",path[i]);
re[size][i]=path[i];
}
size++;
}
dfs(root->left,target,path_now_size+1,sum,re,returnColumnSizes);
dfs(root->right,target,path_now_size+1,sum,re,returnColumnSizes);
}
}
#define maxsize 1000
int** pathSum(struct TreeNode* root, int target, int* returnSize, int** returnColumnSizes){
int**re=(int**)malloc(sizeof(int *)*maxsize);
*returnColumnSizes=(int*)malloc(sizeof(int )*maxsize);
size=0;
dfs(root,target,0,0,re,returnColumnSizes);
*returnSize=size;
printf("szie %d ",size);
return re;
}
边栏推荐
- Request header field xxxx is not allowed by Access-Control-Allow-Headers in preflight response问题
- [tcapulusdb knowledge base] tcapulusdb doc acceptance - Introduction to creating game area
- Error building SqlSession问题
- Sd6.23 summary of intensive training
- 记录服务器被入侵病毒:ssh密码被更改登录失败、恶意程序跑满了cpu、jar包启动失败自动kill、一直弹出You have new mail in /var/spool/mail/root
- Lodash deep copy usage
- jdbc_ Related codes
- 工作流模块Jar包启动报错:liquibase – Waiting for changelog lock….
- Goldfish rhca memoirs: do447 build advanced job workflow -- create job template survey to set work variables
- VMware安装ESXI
猜你喜欢
MySql存储过程循环的使用分析详解
Stepping on the pit: json Parse and json stringify
How QQ opens online customer service
Precondition end of script headers or end of script output before headers
JDBC Codes connexes
牛客小白月赛52 E 分组求对数和(容斥定理+二分)
Xiaobai yuesai 51 supplement e g f
Relationship among controller, service and Dao
小白月赛51 补题 E G F
Image migration and data migration synchronization of old and new servers with different Alibaba cloud accounts
随机推荐
WBF:检测任务NMS后虑框新方式?
JWT登录验证
Adobe Premiere基础-编辑素材文件常规操作(脱机文件,替换素材,素材标签和编组,素材启用,便捷调节不透明度,项目打包)(十七)
Detailed analysis on the use of MySQL stored procedure loop
Adobe Premiere基础-素材嵌套(制作抖音结尾头像动画)(九)
How QQ opens online customer service
关于微服务
Adobe Premiere基础-不透明度(蒙版)(十一)
MySql存储过程循环的使用分析详解
Encryption and decryption of 535 tinyurl
Configure the local domain name through the hosts file
VMware installation esxi
NVIDIA installs the latest graphics card driver
Shell tutorial circular statements for, while, until usage
kubekey2.2.1 kubernetes1.23.7离线包制作+harbor部暑并上传镜像
MySQL -connector/j driver download
DevCloud加持下的青软,让教育“智”上云端
codeforces每日5题(均1700)-第二天
2022.6.29-----leetcode.535
[tcapulusdb knowledge base] tcapulusdb system user group introduction