タイトル:
バイナリツリーが与えられると、ルートから各リーフノードに、デジタル0-9に格納されている各ノードは、パスの数を表します。
例えば、リーフノード1-> 2-> 3のルートからのパスは、数123を表します。
すべての数値の和によって生成されたリーフノードへのルートから算出しました。
説明:リーフノードは、ノードが子ノードを持たないです。
例1:
入力:[1,2,3]
1
/
2 3
出力:25
説明:
ルートからのパス1-> 2のリーフノードに番号12表す
パスのリーフノードへのルートからの1-> 3は、数13を表し
、したがってデジタル和= 12 + 13 = 25。
class Solution {
int res = 0;
public int sumNumbers(TreeNode root) {
sumNumbers(root, 0);
return res;
}
private void sumNumbers(TreeNode node, int num) {
if (node == null)
return;
num = num * 10 + node.val;
if (node.left == null && node.right == null) {
res += num;
}
sumNumbers(node.left, num);
sumNumbers(node.right, num);
}
}