二叉樹中和爲某一值的路徑

  • 輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,數組長度大的數組靠前)
class Solution {
public:
    vector<vector<int> >ans;
    vector<int> myvector;
    vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
        if(root)
            dfs(root,expectNumber);
        return ans;
    }
    void dfs(TreeNode* root,int expectNumber)
    {
        myvector.push_back(root->val);
        if(expectNumber-root->val == 0 && !root->left && !root->right)
            ans.push_back(myvector);
        if(root->left)
            dfs(root->left,expectNumber-root->val);
        if(root->right)
            dfs(root->right,expectNumber-root->val);
        myvector.pop_back();
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章