题目链接
法一(dfs)
private int sum = 0;
private void dfs(TreeNode root, int path) {
if (root == null) {
return;
}
path = (path * 10) + root.val;
if (root.left == null && root.right == null) {
sum += path;
}
dfs(root.left, path);
dfs(root.right, path);
}
public int sumNumbers(TreeNode root) {
dfs(root, 0);
return sum;
}
本地测试
lay.showTitle(129);
Solution129 sol129 = new Solution129();
List<Integer> arr129 = Arrays.asList(4, 9, 0, 5, 1);
TreeNode root129 = treeOpt.createTreeByLayerOrder(arr129);
treeOpt.layerOrder(root129);
System.out.println(sol129.sumNumbers(root129));