Path Sum I、II
来源:互联网 发布:企业邮箱域名入口 编辑:程序博客网 时间:2024/05/16 19:20
Path Sum I
dfs加递归
public boolean hasPathSum(TreeNode root, int sum) { return dfs(root,sum,0); } public boolean dfs(TreeNode root, int sum,int current) { if(root == null)return false; current += root.val; if(root.left == null && root.right == null){ if(current == sum)return true; } return dfs(root.left,sum,current) || dfs(root.right,sum,current); }
Path Sum II
同样用递归,注意的是,递归完成后,要把list中的最后一个数删除。深度遍历,遍历到叶子节点后(即得到一个答案后),要返回到该叶子节点的父节点,所以要把该list中的最后一个数remove。如二叉树(1,2,1,#,#,1,#),输入的参数是3,遍历到2时,得到一个list={1,2},然后要返回节点1,即remove 2 ,然后继续遍历得到另一个答案list={1,1,1}。
public ArrayList<ArrayList<Integer>> pathSum(TreeNode root, int sum) { ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list = new ArrayList<Integer>(); recursive(root,sum,lists,list,0); return lists; } public void recursive(TreeNode root, int sum,ArrayList<ArrayList<Integer>> lists,ArrayList<Integer> list,int add){ if(root == null){ return; } list.add(root.val); add += root.val; if(root.left==null && root.right==null){ if(add == sum){ lists.add(new ArrayList<Integer>(list)); } return; } if(root.left!=null){ recursive(root.left,sum,lists,list,add); list.remove(list.size() - 1); } if(root.right!=null){ recursive(root.right,sum,lists,list,add); list.remove(list.size() - 1); } }
0 0
- Path Sum I、II
- Path Sum I,II
- path-sum-i&ii
- path-sum i & ii
- LeetCode:Path Sum I &&II
- Path Sum I II III
- 【LeetCode】path-sum i&ii
- LeetCode题解:Path Sum I and II
- [projecteuler]Maximum path sum I,II
- LeetCode Solutions : Path Sum I & II
- LeetCode题解:Path Sum I and II
- Unique Paths I,II, Minimum Path Sum
- LeetCode 112, 123. Path Sum i, ii
- LeetCode 112&113 --Path Sum I & II;
- [Leetcode] Path Sum I,II,III
- Leetcode--Path Sum I,II,III
- Leetcode: Unique Path I & II, Minimum Path Sum, Triangle
- Container With Most Water & Path Sum I && II
- Justep X5深度体验及点评(转载)
- 网站会记录并储存用户的搜索内容
- Jquery 浏览器页面窗口刷新或关闭时,执行后台方法(兼容各主流浏览器)
- oracle单行函数
- 基础冒泡排序
- Path Sum I、II
- SVN服务器搭建和使用(三)
- linux cached
- web导出table数据为excel、doc以及打印数据
- linux下如何开通ssh,允许远程登录?
- 非递归数组全排列
- x7xu8dadasdawadad
- xcode一些常用的快捷键
- GL音乐播放器--代码实现<八>--重力甩歌