数字のリーフノード和にLeetCodeルーツ[129]

タイトル:
バイナリツリーが与えられると、ルートから各リーフノードに、デジタル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);
    }
}
公開された55元の記事 ウォン称賛14 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq422243639/article/details/103755759