LeetCode-113.路径总和II(相关话题:深度优先)
2018-10-19 18:51
387 查看
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
示例: 给定如下二叉树,以及目标和 sum = 22,
[code] 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
返回:
[code][ [5,4,11,2], [5,8,4,5] ]
Java代码:
[code]/** * 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>> res = new LinkedList<>(); if(null != root){ List<Integer> tmp = new LinkedList<>(); dfs(root, sum, tmp, res); } return res; } private void dfs(TreeNode root, int sum, List<Integer> tmp, List<List<Integer>> res){ if(null == root.left && null == root.right){ if(root.val == sum){ tmp.add(root.val); res.add(new ArrayList<>(tmp)); tmp.remove(tmp.size()-1); } return; } tmp.add(root.val); if(null != root.left) dfs(root.left, sum-root.val, tmp, res); if(null != root.right) dfs(root.right, sum-root.val, tmp, res); tmp.remove(tmp.size()-1); } }阅读更多
相关文章推荐
- LeetCode-126.单词接龙II(相关话题:Dijkstra算法+深度优先)
- Leetcode 113. 路径总和 II
- leetcode 113. Path Sum II DFS深度优先遍历
- Leetcode 113. Path Sum II 路径和2 解题报告
- LeetCode-116.填充同一层的兄弟节点(相关话题:广度优先)
- LeetCode-127.单词接龙(相关话题:广度优先)
- leetcode 124. Binary Tree Maximum Path Sum 最大路径和 + DFS深度优先搜索
- [LeetCode]113. Path Sum II(列出二叉树根到叶路径和等于sum的所有路径)
- LeetCode 113. Path Sum II(路径和)
- LeetCode-122.买卖股票的最佳时机II(相关话题:贪心算法)
- [LeetCode] 113. Path Sum II 路径和 II
- leetcode 113. Path Sum II (路径和) 解题思路和方法
- leetcode 113. Path Sum II-路径和|回溯算法
- leetcode 113. Path Sum II (路径和) 解题思路和方法
- leetcode 687. Longest Univalue Path 二叉树最长相等路径+ 深度优先遍历DFS
- Path Sum II深度优先找路径