給定乙個二叉樹,它的每個結點都存放乙個 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.
用乙個變數記錄當前節點的值, 然後先序遍歷二叉樹, 遍歷過程中有下面三種情況:
當前節點的左右孩子節點均為空節點. 此時說明該節點為葉子節點, 需要將其值加到ans中
當前節點的左孩子節點不為空節點. 此時更新該節點的左孩子節點對應的值,並遞迴訪問左孩子節點
當前節點的右孩子節點不為空節點. 此時更新該節點的右孩子節點對應的值,並遞迴訪問右孩子節點
ac**:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
if(root-
>left!=
nullptr)if
(root-
>right!=
nullptr)}
intsumnumbers
(treenode* root)
};
力扣解題 求根到葉子節點數字之和
難度 中等 題目 給定乙個二叉樹,它的每個結點都存放乙個 0 9 的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑 1 2 3 代表數字 123。計算從根到葉子節點生成的所有數字之和。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 1,2,3 1 2 3輸出 25 解釋 ...
求根到葉子節點數字之和
給定乙個二叉樹,它的每個結點都存放乙個0 9的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑1 2 3代表數字123。計算從根到葉子節點生成的所有數字之和。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 1 2,3 1 2 3輸出 25解釋 從根到葉子節點路徑 1 2 代...
129 求根到葉子節點數字之和
有一篇講得非常好的 先說一下一開始的錯誤,首先是在遇到葉子節點以後企圖將temp clear調,這樣是完全不對的 因為temp全域性的,清空temp會讓除了該葉子節點以外的前面的節點也清除掉。這樣比如說訪問完某個節點的左子樹以後,再訪問該節點的右子樹時,根節點已經不在裡面了。所以,不行。考慮到上面那...