二叉樹中和為給定值的路徑(leetcode 113)
阿新 • • 發佈:2020-08-17
一:解題思路
這道題目和 leetcode112 在二叉樹中是否存在指定和類似,leetcode112 這個題目是判斷存在性,而這個題目是求出符合條件的路徑總數量,可以放在一起學習。
Time:O(n),Space:O(n)
二:完整程式碼示例 (C++版和Java版)
C++:
class Solution { private: void path(TreeNode* root, int sum, vector<int>& elem, vector<vector<int>>& result) { if (root == NULL) return; elem.push_back(root->val); if (root->left == NULL && root->right == NULL && root->val == sum) result.push_back(elem); path(root->left,sum-root->val,elem,result); path(root->right,sum-root->val,elem,result); elem.pop_back(); }public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> result; vector<int> elem; path(root,sum,elem,result); return result; } };