题解 | #二叉树根节点到叶子节点的所有路径和#简单易懂

二叉树根节点到叶子节点的所有路径和

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));
        }
    }
    
}

全部评论

相关推荐

04-15 20:51
门头沟学院 Java
纳斯卡可:把名字改一下吧 千万级用户你真测过吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务