网站建设公司公司,开发公司可以注册一造吗,网站开发技术笔记,南宁网站建设方案详细方案给定一个二叉树和一个目标和#xff0c;找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
示例: 给定如下二叉树#xff0c;以及目标和 sum 22#xff0c; 5 / \ 4 8 / / \ …给定一个二叉树和一个目标和找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
示例: 给定如下二叉树以及目标和 sum 22 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回:
[ [5,4,11,2], [5,8,4,5] ]
思路dfs回溯
提交的代码
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val x; } * } */
class Solution { ListListInteger result new ArrayListListInteger(); ListInteger list new ArrayListInteger(); int count0; public void fun(TreeNode root, int sum) { if(countsumroot.leftnullroot.rightnull) { result.add(new ArrayList(list)); //不能写result.add(list);因为list会改变带动result也发生改变需要复制一份到result } if(root.left!null) { list.add(root.left.val); countroot.left.val; fun(root.left,sum); } if(root.right!null) { list.add(root.right.val); countroot.right.val; fun(root.right,sum); } count-list.get(list.size()-1); list.remove(list.size()-1); } public ListListInteger pathSum(TreeNode root, int sum) { if(root!null) { list.add(root.val); countroot.val; fun(root,sum); } return result; }
}