package tree;
import java.util.ArrayList;
import java.util.List;
/**
* 129. 求根节点到叶节点数字之和
* 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
* 每条从根节点到叶节点的路径都代表一个数字:
*
* 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
* 计算从根节点到叶节点生成的 所有数字之和 。
*
* 叶节点 是指没有子节点的节点。
*
*
* @author Tang
* @date 2021/7/22
*/
public class SumNumbers {
int sum = 0;
/**
* 前序遍历
* 通过String 每次拼一个当前节点的数字
* 如果当前节点是叶子节点,String数字加入到集合
* sum集合
*
* @param root
* @return
*/
public int sumNumbers(TreeNode root) {
preSearch(root, "");
return sum;
}
private void preSearch(TreeNode node, String num){
if(node == null) {
return;
}
num = num + node.val;
if(node.left == null && node.right == null){
sum += Integer.parseInt(num);
return;
}
preSearch(node.left, num);
preSearch(node.right, num);
}
public static void main(String[] args) {
String s = "";
System.out.println(s+11);
}
}