File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ class TreeNode :
2+ def __init__ (self , x ):
3+ self .val = x
4+ self .left = None
5+ self .right = None
6+
7+ def has_path_sum (root , sum ):
8+ if root is None :
9+ return False
10+
11+ stack = [(root , sum )]
12+
13+ while stack :
14+ node , curr_sum = stack .pop ()
15+ if node .left is None and node .right is None and node .val == curr_sum :
16+ return True
17+ if node .left is not None :
18+ stack .append ((node .left , curr_sum - node .val ))
19+ if node .right is not None :
20+ stack .append ((node .right , curr_sum - node .val ))
21+ return False
22+
23+ # Test case
24+ t1 = TreeNode (5 )
25+ t2 = TreeNode (4 )
26+ t3 = TreeNode (8 )
27+ t4 = TreeNode (11 )
28+ t6 = TreeNode (4 )
29+ t7 = TreeNode (7 )
30+ t8 = TreeNode (2 )
31+ t9 = TreeNode (1 )
32+ t6 .right = t9
33+ t4 .right = t8
34+ t4 .left = t7
35+ t3 .right = t6
36+ t2 .left = t4
37+ t1 .right = t3
38+ t1 .left = t2
39+ assert has_path_sum (t1 , 22 ) == True
You can’t perform that action at this time.
0 commit comments