【LeetCode】112.Path Sum(Easy)解题报告
2018-03-12 22:44
387 查看
【LeetCode】112.Path Sum(Easy)解题报告
题目地址:https://leetcode.com/problems/path-sum/description/
题目描述:
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.
Solution1:
Solution2:
Date:2018年3月12日
题目地址:https://leetcode.com/problems/path-sum/description/
题目描述:
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.
Solution1:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } time : O(n) space : O(n) 递归和非递归两种写法 */ class Solution { public boolean hasPathSum(TreeNode root, int sum) { if(root == null) return false; if(root.left == null && root.right == null){ return sum==root.val; } return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val); } }
Solution2:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } time : O(n) space : O(n) 递归和非递归两种写法 stack */ class Solution { public boolean hasPathSum(TreeNode root, int sum) { if(root == null) return false; Stack<TreeNode> stack = new Stack<>(); stack.push(root); while(!stack.isEmpty()){ TreeNode cur = stack.pop(); if(cur.left == null && cur.right == null){ if(cur.val == sum){ return true; } } if(cur.right != null){ stack.push(cur.right); cur.right.val += cur.val; } if(cur.left != null){ stack.push(cur.left); cur.left.val += cur.val; } } return false; } }
Date:2018年3月12日
相关文章推荐
- 【LeetCode】581.Shortest Unsorted Continuous Subarray(easy)解题报告
- LeetCode解题报告 101. Symmetric Tree [easy]
- 【LeetCode】257.Binary Tree Paths(Easy)解题报告
- 【LeetCode】653.Two Sum IV - Input is a BST(Easy)解题报告
- LeetCode解题报告 107. Binary Tree Level Order Traversal II [easy]
- Leetcode 112. Path Sum (Easy) (cpp)
- LeetCode解题报告 1. Two Sum[easy]
- 【LeetCode】108.Convert Sorted Array to Binary Search Tree(Easy)解题报告
- 【LeetCode】119.Pascal's Triangle II(Easy)解题报告
- 【LeetCode】383.Ransom Note(Easy)解题报告
- [Leetcode] 112. Path Sum 解题报告
- 【LeetCode】687.Longest Univalue Path(Easy)解题报告
- 【LeetCode】27.Remove Element(Easy)解题报告
- 【LeetCode】121.Best Time to Buy and Sell Stock(Easy)解题报告
- 【LeetCode】463.Island Perimeter(easy)解题报告
- LeetCode112. Path Sum(Easy)
- [LeetCode]Path Sum,解题报告
- 【LeetCode】122.Best Time to Buy and Sell Stock II(Easy)解题报告
- LeetCode解题报告 110. Balanced Binary Tree [easy]
- LeetCode解题报告 257. Binary Tree Paths [easy]