路径总和II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

说明: 叶子节点是指没有子节点的节点。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> pathSum(TreeNode root, int sum) {
        
        List<List<Integer>> L = new ArrayList<List<Integer>>();
        List<Integer> list = new ArrayList<Integer>();
        if (root == null) {
            return L;
        }
        list.add(root.val);
        path(root, sum, list, L, root.val);
        return L;
    }
    
    public static void path(TreeNode root, int sum, List<Integer> list,                   List<List<Integer>> L, int cur) {
        if (root.left == null && root.right == null) {
            if (cur == sum) {
                L.add(new ArrayList(list));
                return;
            }
        }
        
        if (root.left != null) {
            list.add(root.left.val);
            path(root.left, sum, list, L, cur + root.left.val);
            list.remove(list.size() - 1);
        }
        
        if (root.right != null) {
            list.add(root.right.val);
            path(root.right, sum, list, L, cur + root.right.val);
            list.remove(list.size() - 1);
        }
        
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节...
    ZMT_sherry阅读 297评论 0 0
  • 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点...
    vbuer阅读 296评论 0 0
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,994评论 0 13
  • 更多干货就在我的个人博客 BlackBlog.tech 欢迎关注!也可以关注我的csdn博客:黑哥的博客谢谢大家!...
    BlackBlog__阅读 4,264评论 0 3
  • 今天来了三个年轻的小伙子搬家,手脚还算利落。但我万没有想到把一桶油弄撒了,洗衣机里一股色拉油味道。本来油可以送人的...
    津城燕窝Donna阅读 197评论 0 0