国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】

這篇具有很好參考價(jià)值的文章主要介紹了Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目

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

葉子節(jié)點(diǎn)?是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。

示例 1:

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

輸入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
輸出:[[5,4,11,2],[5,8,4,5]]

示例 2:

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

輸入:root = [1,2,3], targetSum = 5
輸出:[]

示例 3:

輸入:root = [1,2], targetSum = 0
輸出:[]

提示:

  • 樹中節(jié)點(diǎn)總數(shù)在范圍?[0, 5000]?內(nèi)
  • -1000 <= Node.val <= 1000
  • -1000 <= targetSum <= 1000

解題思路

1.題目要求我們找出所有?從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)?路徑總和等于給定目標(biāo)和的路徑。我們可以使用深度優(yōu)先遍歷來解決這個(gè)問題。

2.舉個(gè)例子:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

首先我們建立兩個(gè)動(dòng)態(tài)數(shù)組res和temp來存儲(chǔ)結(jié)果和遍歷的路徑。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)?然后我們從根節(jié)點(diǎn)開始遍歷,先將 5 放入數(shù)組 temp ,并且給 target 減 5 。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

此時(shí) target 不為 0 ,那么我們需要繼續(xù)遍歷,再將 5 的左孩子 4 放入temp 中,并且給 target 減 4。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)?此時(shí) target 不為 0 ,那么我們需要繼續(xù)遍歷,再將 4?的左孩子 11?放入temp 中,并且給 target 減 11。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

??此時(shí) target 不為 0 ,那么我們需要繼續(xù)遍歷,再將 11?的左孩子 7?放入temp 中,并且給 target 減 11。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

這時(shí)我們發(fā)現(xiàn) 7 已經(jīng)是葉子節(jié)點(diǎn),但是target還是不為 0 ,那就說明這條路不是路徑總和等于給定目標(biāo)和的路徑,我們就需要回溯,我們返回上一個(gè)節(jié)點(diǎn),也就是11。

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

然后我們?nèi)ケ闅v 11 的右孩子 2 ,?將 11?的右孩子 2 放入temp 中,并且給 target 減 2。

?Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

此時(shí) target 剛好為 0 ,并且 2 也是葉子節(jié)點(diǎn),那就說明我們找到了路徑總和等于給定目標(biāo)和的路徑,我們需要將 temp 中保存的路徑放入數(shù)組 res 中,

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

然后再進(jìn)行回溯按照相同的思路去遍歷其他的節(jié)點(diǎn),直到所有節(jié)點(diǎn)都遍歷結(jié)束,最后返回 res即可。

代碼實(shí)現(xiàn)

class Solution {
    List<List<Integer>> res;
    List<Integer> temp;
    public List<List<Integer>> pathSum(TreeNode root, int target) {
        res = new ArrayList<>();
        temp = new ArrayList<>();
        dsf(root,target);
        return res;
    }
    void dsf(TreeNode root, int target){
        if(root == null){
            return;
        }
        temp.add(root.val);
        target = target - root.val;
        if(root.left == null && root.right == null && target == 0){
            res.add(new ArrayList(temp));
        }
        dsf(root.left, target);
        dsf(root.right, target);
        temp.remove(temp.size()-1);
}
}

測(cè)試結(jié)果

Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】,leetcode,算法,職場(chǎng)和發(fā)展,java,數(shù)據(jù)結(jié)構(gòu)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-667439.html

到了這里,關(guān)于Leetcode-每日一題【劍指 Offer 34. 二叉樹中和為某一值的路徑】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (樹) 劍指 Offer 27. 二叉樹的鏡像 ——【Leetcode每日一題】

    (樹) 劍指 Offer 27. 二叉樹的鏡像 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 請(qǐng)完成一個(gè)函數(shù),輸入一個(gè)二叉樹,該函數(shù)輸出它的鏡像。 例如輸入: 鏡像輸出: 示例 1: 輸入:root = [4,2,7,1,3,6,9] 輸出:[4,7,2,9,6,3,1] 限制 : 0 = 節(jié)點(diǎn)個(gè)數(shù) = 1000 注意 :本題與 226. 翻轉(zhuǎn)二叉樹 相同。 ??思路:遞歸 我們從根節(jié)點(diǎn)開始,遞歸地對(duì)樹進(jìn)行遍歷: 如果

    2024年02月13日
    瀏覽(26)
  • Leetcode-每日一題【劍指 Offer 32 - I. 從上到下打印二叉樹】

    Leetcode-每日一題【劍指 Offer 32 - I. 從上到下打印二叉樹】

    從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。 例如: 給定二叉樹:? [3,9,20,null,null,15,7] , ??? 3 ?? / ? 9? 20 ??? /? ?? 15?? 7 返回: [3,9,20,15,7] 提示: 節(jié)點(diǎn)總數(shù) = 1000 1.題目要求我們從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左

    2024年02月12日
    瀏覽(22)
  • (樹) 劍指 Offer 32 - I. 從上到下打印二叉樹 ——【Leetcode每日一題】

    (樹) 劍指 Offer 32 - I. 從上到下打印二叉樹 ——【Leetcode每日一題】

    難度:中等 從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 返回: 提示 : 節(jié)點(diǎn)總數(shù) = 100 ??思路:BFS 使用 優(yōu)先隊(duì)列 進(jìn)行 層序遍歷 即可! ??代碼:(C++、Java) C++ Java ?? 運(yùn)行結(jié)果: ?? 復(fù)雜度分析: 時(shí)間

    2024年02月14日
    瀏覽(22)
  • Leetcode-每日一題【劍指 Offer 32 - III. 從上到下打印二叉樹 III】

    Leetcode-每日一題【劍指 Offer 32 - III. 從上到下打印二叉樹 III】

    請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。 例如: 給定二叉樹:? [3,9,20,null,null,15,7] , ??? 3 ?? / ? 9? 20 ??? /? ?? 15?? 7 返回其層次遍歷結(jié)果:

    2024年02月12日
    瀏覽(24)
  • Leetcode-每日一題【劍指 Offer 32 - II. 從上到下打印二叉樹 II】

    Leetcode-每日一題【劍指 Offer 32 - II. 從上到下打印二叉樹 II】

    從上到下按層打印二叉樹,同一層的節(jié)點(diǎn)按從左到右的順序打印,每一層打印到一行。 例如: 給定二叉樹:? [3,9,20,null,null,15,7] , ??? 3 ?? / ? 9? 20 ??? /? ?? 15?? 7 返回其層次遍歷結(jié)果: [ ? [3], ? [9,20], ? [15,7] ] 提示: 節(jié)點(diǎn)總數(shù) = 1000 1.題目要求我們從上到下按層打印二

    2024年02月12日
    瀏覽(15)
  • 二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    各位CSDN的uu們你們好呀,今天繼續(xù)數(shù)據(jù)結(jié)構(gòu)與算法專欄中的二叉樹,下面,讓我們進(jìn)入二叉樹的世界吧?。?! 二叉樹(上)——“數(shù)據(jù)結(jié)構(gòu)與算法”_認(rèn)真學(xué)習(xí)的小雅蘭.的博客-CSDN博客 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 求二叉樹的高度 但是這種寫法有很大的問題

    2024年02月17日
    瀏覽(32)
  • 劍指offer12 矩陣中的路徑 13 機(jī)器人的運(yùn)動(dòng)范圍 34.二叉樹中和為某一值得路徑

    劍指offer12 矩陣中的路徑 13 機(jī)器人的運(yùn)動(dòng)范圍 34.二叉樹中和為某一值得路徑

    //寫的有點(diǎn)問題,暫時(shí)想不到怎么改,先放著,通過用例71/83 卡住的是abcd 但是改了又有問題 無語 看了 答案 都寫不對(duì) 在類成員里面定義了row和col 就不要重復(fù)定義了 不然不知道為什么就開始發(fā)瘋 先貼出蠢貨寫出來的東西 審題也審不明白 機(jī)器人只能上下左右走 不能一行一行

    2024年02月15日
    瀏覽(25)
  • Leetcode-每日一題【劍指 Offer 29. 順時(shí)針打印矩陣】

    Leetcode-每日一題【劍指 Offer 29. 順時(shí)針打印矩陣】

    輸入一個(gè)矩陣,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字。 示例 1: 輸入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出: [1,2,3,6,9,8,7,4,5] 示例 2: 輸入: matrix =?[[1,2,3,4],[5,6,7,8],[9,10,11,12]] 輸出: [1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 = matrix.length = 100 0 = matrix[i].length?= 100 1.題目要求

    2024年02月13日
    瀏覽(28)
  • (鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】

    (鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 定義一個(gè)函數(shù),輸入一個(gè)鏈表的頭節(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點(diǎn)。 示例: 輸入 : 1-2-3-4-5-NULL 輸出 : 5-4-3-2-1-NULL 限制 : 0 = 節(jié)點(diǎn)個(gè)數(shù) = 5000 注意:本題與 206. 反轉(zhuǎn)鏈表 相同。 ??思路: 法一:遞歸 可以將本問題分解成子問題: 1 - (剩余部分的反轉(zhuǎn))

    2024年02月15日
    瀏覽(29)
  • Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    實(shí)現(xiàn)?pow(x,?n)?,即計(jì)算 x 的 n 次冪函數(shù)(即,xn)。不得使用庫函數(shù),同時(shí)不需要考慮大數(shù)問題。 示例 1: 輸入: x = 2.00000, n = 10 輸出: 1024.00000 示例 2: 輸入: x = 2.10000, n = 3 輸出: 9.26100 示例 3: 輸入: x = 2.00000, n = -2 輸出: 0.25000 解釋: 2-2 = 1/22 = 1/4 = 0.25 提示: -10

    2024年02月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包