leetcode-112. Path Sum
2017-01-04 16:37
309 查看
leetcode-112. Path Sum
题目:Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
For example:
Given the below binary tree and sum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
典型的DFS。
迭代的终止条件:当前节点的值等于剩余的值,并且该节点为叶子节点
迭代过程:左右子节点结果相或
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean hasPathSum(TreeNode root, int sum) { List<TreeNode> list = new ArrayList<TreeNode>(); if(root==null) return false; return helper(list,root,sum); } private boolean helper(List<TreeNode> list ,TreeNode root, int sum){ if(root == null) return false; if(sum==root.val && root.left == null && root.right == null) return true; list.add(root); return helper(list,root.left,sum-root.val) || helper(list,root.right,sum-root.val); } }
相关文章推荐
- [Leetcode] 112. Path Sum
- LeetCode 112. Path Sum
- LeetCode 112. Path Sum
- [leetcode] @python 112. Path Sum
- LeetCode - 112. Path Sum
- Leetcode 112. Path Sum
- Leetcode-112. Path Sum
- [LeetCode]112. Path Sum
- [LeetCode] 112. Path Sum
- leetcode 112. Path Sum
- Leetcode 112. Path Sum
- Leetcode 112. Path Sum
- [LeetCode]112. Path Sum(判断二叉树根到叶路径和是否等于sum)
- LeetCode 112. Path Sum
- [LeetCode]112. Path Sum
- leetcode 112. Path Sum
- 【LeetCode】112.Path Sum
- LeetCode 112. Path Sum
- [leetcode] 112. Path Sum
- leetcode 112. Path Sum