Leetcode113路徑總和2

題目

給定一個(gè)二叉樹(shù)和一個(gè)目標(biāo)和,找到所有從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑總和等于給定目標(biāo)和的路徑。

說(shuō)明: 葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。

示例:
給定如下二叉樹(shù),以及目標(biāo)和 sum = 22,
              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1
返回:

[
   [5,4,11,2],
   [5,8,4,5]
]

代碼及注釋

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<vector<int>> pathSum(TreeNode* root, int sum) {
        //返回的結(jié)果數(shù)組
        vector<vector<int>> res;
        //臨時(shí)的路徑數(shù)組
        vector<int> path;
        hasPathSum(res,path,root,sum);
        return res;
    }
    /**
    * 遞歸獲取路徑
    **/
    void hasPathSum(vector<vector<int>>& res,vector<int> path,TreeNode* root, int sum) {
        if(!root)
            return;
        //把當(dāng)前步驟放進(jìn)臨時(shí)數(shù)組里面
        path.push_back(root->val);
        //如果是葉子節(jié)點(diǎn)且滿足路徑總和要求,則把此路徑放進(jìn)結(jié)果里面
        if(root->val == sum && root->left==NULL && !root->right){
            res.push_back(path);
            return;
        }
        //否則,尋找左邊路徑和右邊路徑
        hasPathSum(res,path,root->left,sum-root->val);
        hasPathSum(res,path,root->right,sum-root->val);
    }

};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 更多干貨就在我的個(gè)人博客 BlackBlog.tech 歡迎關(guān)注!也可以關(guān)注我的csdn博客:黑哥的博客謝謝大家!...
    BlackBlog__閱讀 4,447評(píng)論 0 3
  • 這篇文章總結(jié)了一下這兩天刷的二叉樹(shù)的解題方法,主要是遞歸、迭代的DFS、迭代的BSF這三種。題目列表如下: 題目列...
    不要甜的紅燒肉閱讀 562評(píng)論 0 0
  • 一些概念 數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系,并對(duì)這種結(jié)構(gòu)定義相應(yīng)的運(yùn)算,而且確保經(jīng)過(guò)這...
    Winterfell_Z閱讀 6,615評(píng)論 0 13
  • 給定一個(gè)二叉樹(shù)和一個(gè)目標(biāo)和,找到所有從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑總和等于給定目標(biāo)和的路徑。說(shuō)明: 葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)...
    皮蛋豆腐醬油閱讀 231評(píng)論 0 0
  • 1.創(chuàng)建倉(cāng)庫(kù) 點(diǎn)擊 New repository出來(lái)的頁(yè)面 各個(gè)參數(shù)選擇 Repository name:倉(cāng)庫(kù)名稱(chēng)...
    水書(shū)閱讀 2,523評(píng)論 0 5

友情鏈接更多精彩內(nèi)容