Given a binary tree and a sum, determine if the tree has a root-to-leaf path such this adding up all the values along the Path equals the given sum.
For example:
Given the below binary tree sum = 22
and,
5 / 4 8 / / / 4 / \ 7 2 1
Return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
Idea: A recursive brute force hack.
After exhausting the solution of all the sub-problems, be assured of self-invocation bar.
#Definition for a binary tree node#class TreeNode:#def __init__ (self, x):#self.val = x#self.left = None#self.right = NoneclassSolution:#@param root, a tree node #@param sum, an integer #@return A Boolean defhaspathsum (self, Root, sum):ifRoot = = None:returnFalseifRoot.val = = Sum andRoot.left = = None andRoot.right = =None:returnTruereturnSelf.haspathsum (Root.left, Sum-root.val)orSelf.haspathsum (Root.right, Sum-root.val)
[Leetcode] path sum @ Python [recursion]