leetcode 129 求根到葉子節點數字之和

2022-05-05 10:09:07 字數 1320 閱讀 9738

給定乙個二叉樹,它的每個結點都存放乙個0-9的數字,每條從根到葉子節點的路徑都代表乙個數字。

例如,從根到葉子節點路徑1->2->3代表數字123

計算從根到葉子節點生成的所有數字之和。

說明: 葉子節點是指沒有子節點的節點。

示例 1:

輸入: [1,2,3]

1/ \

2 3

輸出: 25

解釋:從根到葉子節點路徑1->2代表數字12.

從根到葉子節點路徑1->3代表數字13.

因此,數字總和 = 12 + 13 =25.

示例 2:

輸入: [4,9,0,5,1]

4/ \

9 0

/ \5 1

輸出: 1026

解釋:從根到葉子節點路徑4->9->5代表數字 495.

從根到葉子節點路徑4->9->1代表數字 491.

從根到葉子節點路徑4->0代表數字 40.

因此,數字總和 = 495 + 491 + 40 =1026.

思路:

為什麼要除以10呢? 因為當前的值彈出,位數減少以為,等價於出去最低位,所以除以10

1/**

2* definition for a binary tree node.

3* struct treenode

8* };9*/

10 #include11 #include12

class

solution else

if(temp->right)else

44else

if(!fr)

49else

if(fl&&fr)

52s.pop();53}

54}55return

sum;56}

57 };

用遞迴的方法試一試這道題,**會簡短很多

dfs遍歷樹的時候,會從根結點一條路變數到葉子結點,每進行一次dfs遞迴,相當於壓棧乙個結點

遍歷結束於葉子結點,當把一條路徑的值新增到ans中後,需要除以10,原因同上面

1

class

solution

11int sumnumbers(treenode*root)

16 };

Leetcode 129 求根到葉子節點數字之和

給定乙個二叉樹,它的每個結點都存放乙個0 9的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑1 2 3代表數字123。計算從根到葉子節點生成的所有數字之和。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 1,2,3 1 2 3輸出 25解釋 從根到葉子節點路徑 1 2代表...

Leetcode 129 求根到葉子節點數字之和

給定乙個二叉樹,它的每個結點都存放乙個0 9的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑1 2 3代表數字123。計算從根到葉子節點生成的所有數字之和。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 1,2,3 1 2 3輸出 25解釋 從根到葉子節點路徑1 2代表數...

LeetCode 129 求根到葉子節點數字之和

題目描述 提示幫助 提交記錄社群討論閱讀解答 隨機一題 給定乙個二叉樹,它的每個結點都存放乙個0 9的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑1 2 3代表數字123。計算從根到葉子節點生成的所有數字之和。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 1,2,3 ...