Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For 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] ]
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : void findPath(TreeNode *node, int n, int &sum, vector< int > &buf, vector<vector< int >> &res){ if (!node) return ; buf.push_back(node->val); if (!node->left&&!node->right&&node->val+n==sum){ res.push_back(buf); buf.pop_back(); return ; } findPath(node->left,node->val+n,sum,buf,res); findPath(node->right,node->val+n,sum,buf,res); buf.pop_back(); } vector<vector< int > > pathSum(TreeNode *root, int sum) { vector< int > buf; vector<vector< int >> res; findPath(root,0,sum,buf,res); return res; } }; |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步