タイトル説明
0〜9の数字のみを含む二分木が与えられた場合、ルートノードからリーフノードへの各パスは数字で表すことができます。
たとえば、ルートノードからリーフノードへのパスが1→2→3の場合、このパスは123に置き換えられます。
ルートノードからリーフノードまでのすべてのパスで表される数値の合計を求めます。
例:
このバイナリツリー内の2つの経路が存在する
。から経路1→2
リーフノードにルートノードである番号12で置き換え番号13に置き換えられているリーフノードにルートノードから経路1→3、
そう答えは\ 12 + 13 = 25 12 + 13 = 25
例1
入る
{1,0}
戻り値
10
例2
入る
{1、#、9}
戻り値
19
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
int resultVal = 0;
/**
*
* @param root TreeNode类
* @return int整型
*/
public int sumNumbers (TreeNode root) {
preTree(root);
return resultVal;
}
public void preTree(TreeNode root){
if(root == null){
return;
}
if(root.left == null && root.right == null){
resultVal += root.val;
return;
}
if(root.left!=null){
root.left.val += root.val*10;
}
if(root.right!=null){
root.right.val += root.val*10;
}
preTree(root.left);
preTree(root.right);
}
}