OpenCV之高斯平滑(Python實現)
阿新 • • 發佈:2020-08-09
題目
這道題有意思的一點是:路徑不一定得從根節點開始,也不一定得到葉子節點結束,這道題2叉樹和為某一個值的路徑比較像,本質上還是一道DFS型別的題目
那麼因為可以從任意一個節點開始,所以我們需要遍歷到每個節點作為開始,滿足條件的時候結束
class Solution { private: int cnt = 0; public: int pathSum(TreeNode* root, int sum) { if(!root) return cnt; pre_order(root, sum); return cnt; } void dfs(TreeNode *root, int sum){ if(!root) return; if(root->val == sum) cnt++; dfs(root->left,sum - root->val); dfs(root->right, sum -root->val); } void pre_order(TreeNode *root, int sum){ /* 路徑有可能從任何節點開始,所以乾脆前序遍歷一遍 */ if(!root) return; dfs(root, sum);//同時看從root這個節點開始的時候,有沒有符合條件的路徑 pre_order(root->left, sum); pre_order(root->right, sum); } };