leetcode 129. 求根到葉子節(jié)點(diǎn)數(shù)字之和

題目描述

給定一個(gè)二叉樹混坞,它的每個(gè)結(jié)點(diǎn)都存放一個(gè)0-9的數(shù)字第献,每條從根到葉子節(jié)點(diǎn)的路徑都代表一個(gè)數(shù)字破加。
例如俱恶,從根到葉子節(jié)點(diǎn)路徑 1->2->3代表數(shù)字 123
計(jì)算從根到葉子節(jié)點(diǎn)生成的所有數(shù)字之和范舀。
說明: 葉子節(jié)點(diǎn)是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)合是。
相關(guān)話題:?樹、深度優(yōu)先搜索????
難度:
?中等

示例1:

示例2:

思路:

  • 首先是先序遍歷锭环,每遍歷到一個(gè)節(jié)點(diǎn)聪全,如果該節(jié)點(diǎn)不是null,用傳進(jìn)來的sum * 10 + 當(dāng)前節(jié)點(diǎn)的值sum = sum * 10 + root.val;當(dāng)當(dāng)前節(jié)點(diǎn)是葉子節(jié)點(diǎn)辅辩,返回sum难礼,這就是一條路徑的值。這是遞歸的子問題
  • 遞歸左玫锋、右子樹蛾茉,返回左右子樹的值的和。
    return sumNumbers(root.left,sum) + sumNumbers(root.right,sum);
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int sumNumbers(TreeNode root) {
        return sumNumbers(root, 0);
    }
    public int sumNumbers(TreeNode root, int sum){
        if(root == null) return 0;
        sum = sum * 10 + root.val;
        if(root.left == null && root.right == null)
            return sum;
        return sumNumbers(root.left,sum) + sumNumbers(root.right,sum);
    }
}

總結(jié):遞歸算法將大問題看小的思路實(shí)在是在奇妙了撩鹿。

  • 在做遞歸的題時(shí)谦炬,有時(shí)候我們需要另起一個(gè)函數(shù),然后在另一個(gè)函數(shù)中調(diào)用三痰。例如本題另起了一個(gè)函數(shù)sumNumbers(TreeNode root, int sum)吧寺。因?yàn)樵谒阋粭l路徑的值時(shí),是一種自頂向下的遞歸散劫,必須接受上一步傳遞下來的結(jié)果稚机,是一步一步更新的過程,所以需要sum的輔助获搏。而在做斐波那契數(shù)列時(shí)赖条,那是一個(gè)自底向上的遞歸,例如要算f(n)常熙,就要知道f(n-1)纬乍,一直推到f(1),在此之前并沒有結(jié)果算出來裸卫。
  • 二叉樹的遞歸離不開左仿贬、右子樹,根據(jù)實(shí)際問題需要確定子問題墓贿, 每個(gè)遍歷到每個(gè)節(jié)點(diǎn)所需要做的操作(sum = sum * 10 + root.val)茧泪,以及遞歸返回的條件(葉子節(jié)點(diǎn)時(shí)返回結(jié)果sum)蜓氨,然后就是借助左右思想return sumNumbers(root.left,sum) + sumNumbers(root.right,sum);
    做什么操作队伟,什么時(shí)候返回
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穴吹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嗜侮,更是在濱河造成了極大的恐慌港令,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锈颗,死亡現(xiàn)場離奇詭異顷霹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)宜猜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門泼返,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人姨拥,你說我怎么就攤上這事绅喉。” “怎么了叫乌?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵柴罐,是天一觀的道長。 經(jīng)常有香客問我憨奸,道長革屠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任排宰,我火速辦了婚禮似芝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘板甘。我一直安慰自己党瓮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布盐类。 她就那樣靜靜地躺著寞奸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪在跳。 梳的紋絲不亂的頭發(fā)上枪萄,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機(jī)與錄音猫妙,去河邊找鬼瓷翻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逻悠。 我是一名探鬼主播元践,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼童谒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沪羔,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤饥伊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蔫饰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琅豆,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年篓吁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫因。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杖剪,死狀恐怖冻押,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盛嘿,我是刑警寧澤洛巢,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站次兆,受9級特大地震影響稿茉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芥炭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一漓库、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧园蝠,春花似錦渺蒿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陪汽,卻和暖如春训唱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挚冤。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工况增, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人训挡。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓澳骤,卻偏偏與公主長得像歧强,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子为肮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 做題摊册,實(shí)際寫出例子,然后分析可能遇到的情況颊艳,慢慢的茅特,思路就會(huì)出來了。 線性表 33. Search in Rota...
    小碧小琳閱讀 1,596評論 0 2
  • 94. Binary Tree Inorder Traversal 中序 inorder:左節(jié)點(diǎn)->根節(jié)點(diǎn)->右節(jié)...
    Morphiaaa閱讀 544評論 0 0
  • 一些概念 數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系棋枕,并對這種結(jié)構(gòu)定義相應(yīng)的運(yùn)算白修,而且確保經(jīng)過這...
    Winterfell_Z閱讀 5,854評論 0 13
  • 動(dòng)態(tài)規(guī)劃 111. 爬樓梯思路類似斐波那契數(shù)列注意考慮第 0 階的特殊情況 272. 爬樓梯 II思路類似上題,只...
    6默默Welsh閱讀 2,433評論 0 1
  • 一種底層思維方式 歸納演繹 解構(gòu)重構(gòu)圖(線條重斑,顏色兵睛,方向,權(quán)重……)
    龍貓同學(xué)閱讀 580評論 0 0