diff --git a/problems/0112.路径总和.md b/problems/0112.路径总和.md index deee84cf..1b75113e 100644 --- a/problems/0112.路径总和.md +++ b/problems/0112.路径总和.md @@ -305,25 +305,34 @@ public: Java: -```java +```Java class Solution { - private boolean flag = false; - public boolean hasPathSum(TreeNode root, int targetSum) { - has_2(root,targetSum); - return flag; - } - - public void has_2 (TreeNode root, int count) { - if (root == null) return; - if (root.left == null && root.right == null && count == root.val) { - flag = true; + public boolean hasPathSum(TreeNode root, int targetSum) { + if (root == null) { + return false; } - if (root.left != null) has_2(root.left,count - root.val); - if (root.right != null) has_2(root.right,count - root.val); + targetSum -= root.val; + // 叶子结点 + if (root.left == null && root.right == null) { + return targetSum == 0; + } + if (root.left != null) { + boolean left = hasPathSum(root.left, targetSum); + if (left) {// 已经找到 + return true; + } + } + if (root.right != null) { + boolean right = hasPathSum(root.right, targetSum); + if (right) {// 已经找到 + return true; + } + } + return false; } } -``` +``` Python: