首页 > 其他 > 详细

leetcode 37:path-sum-ii

时间:2020-08-16 15:14:05      阅读:71      评论:0      收藏:0      [点我收藏+]

题目描述

给定一个二叉树和一个值 sum\ sum sum,请找出所有的根节点到叶子节点的节点值之和等于 sum\ sum sum 的路径,
例如:
给出如下的二叉树, sum=22\ sum=22 sum=22,
技术分享图片
返回
[
[5,4,11,2],
[5,8,9]
]
题目分析:这道题和leetcode 22:sum-root-to-leaf-numbers解法基本一致。
代码如下:
 1 void GetPathSum(TreeNode* root,vector<vector<int>> &ret,vector<int> &tmp,int &retSum,int sum)
 2     {
 3         if(root == NULL)
 4             return;
 5         
 6         tmp.push_back(root->val);
 7         retSum += root->val;
 8         if(!root->left&& !root->right) //子节点
 9         {
10             if(sum == retSum)
11                 ret.push_back(tmp);
12         }
13         else{
14             if(root->left)
15                 GetPathSum(root->left,ret,tmp,retSum,sum);
16             if(root->right)
17                 GetPathSum(root->right,ret,tmp,retSum,sum);
18         }
19         retSum -= root->val;
20         tmp.pop_back();
21     }
22     vector<vector<int> > pathSum(TreeNode* root, int sum) {
23         vector<vector<int>> ret;
24         vector<int> tmp;
25         int retSum = 0;
26         GetPathSum(root,ret,tmp,retSum,sum);
27         return ret;
28     }

 

leetcode 37:path-sum-ii

原文:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13512449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!