题解 | #二叉树根节点到叶子节点的所有路径和#简单易懂
二叉树根节点到叶子节点的所有路径和
http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型
*/
public int sumNumbers (TreeNode root) {
if (root == null) {
return 0;
}
List<Integer> list = new ArrayList<>();
dfs(root, list , "");
int sum = list.stream().reduce(0, (Integer a, Integer b) -> a + b).intValue();
return sum;
}
private void dfs(TreeNode node, List<Integer> list, String temp) {
TreeNode left = node.left;
TreeNode right = node.right;
temp = temp + node.val;
if (left != null) {
dfs(left, list, temp);
}
if (right != null) {
dfs(right, list, temp);
}
if(left == null && right == null) {
list.add(Integer.parseInt(temp));
}
}
}
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型
*/
public int sumNumbers (TreeNode root) {
if (root == null) {
return 0;
}
List<Integer> list = new ArrayList<>();
dfs(root, list , "");
int sum = list.stream().reduce(0, (Integer a, Integer b) -> a + b).intValue();
return sum;
}
private void dfs(TreeNode node, List<Integer> list, String temp) {
TreeNode left = node.left;
TreeNode right = node.right;
temp = temp + node.val;
if (left != null) {
dfs(left, list, temp);
}
if (right != null) {
dfs(right, list, temp);
}
if(left == null && right == null) {
list.add(Integer.parseInt(temp));
}
}
}