[LeetCode] Path Sum II
Well, a typical backtracking problem. The code is as follows. You may walk through it using the example in the problem statement to see how it works.
1 class Solution { 2 public: 3 vector<vector<int>> pathSum(TreeNode* root, int sum) { 4 vector<vector<int> > paths; 5 vector<int> path; 6 findPaths(root, sum, path, paths); 7 return paths; 8 } 9 private: 10 void findPaths(TreeNode* node, int sum, vector<int>& path, vector<vector<int> >& paths) { 11 if (!node) return; 12 path.push_back(node -> val); 13 if (!(node -> left) && !(node -> right) && sum == node -> val) 14 paths.push_back(path); 15 findPaths(node -> left, sum - node -> val, path, paths); 16 findPaths(node -> right, sum - node -> val, path, paths); 17 path.pop_back(); 18 } 19 };
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步