首页 > 代码库 > Path Sum II
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]]
思路:对二叉树进行遍历即可。
class Solution {public: vector<vector<int>> pathSum( TreeNode *root, int sum ) { vector<int> path; PathSumSub( path, root, sum ); return pathes; }private: void PathSumSub( vector<int>& path, TreeNode *node, int sum ) { if( !node ) { return; } path.push_back( node->val ); sum -= node->val; if( !node->left && !node->right ) { if( sum == 0 ) { pathes.push_back( path ); } path.pop_back(); return; } if( node->left ) { PathSumSub( path, node->left, sum ); } if( node->right ) { PathSumSub( path, node->right, sum ); } path.pop_back(); } vector<vector<int>> pathes;};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。