Skip to content

Commit 5f6ae62

Browse files
committed
2023-02-16 update: added "112. Path Sum"
1 parent a5de8c6 commit 5f6ae62

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
3636
| 108. Convert Sorted Array to Binary Search Tree | [Link](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/) | [Link](./lib/easy/convert_sorted_array_to_binary_search_tree.dart) |
3737
| 110. Balanced Binary Tree | [Link](https://leetcode.com/problems/balanced-binary-tree/) | [Link](./lib/easy/balanced_binary_tree.dart) |
3838
| 111. Minimum Depth of Binary Tree | [Link](https://leetcode.com/problems/minimum-depth-of-binary-tree/) | [Link](./lib/easy/minimum_depth_of_binary_tree.dart) |
39+
| 112. Path Sum | [Link](https://leetcode.com/problems/path-sum/) | [Link](./lib/easy/path_sum.dart) |

lib/easy/path_sum.dart

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import '../common/tree_node.dart';
2+
3+
// https://leetcode.com/problems/path-sum/
4+
class Solution {
5+
bool hasPathSum(TreeNode? root, int targetSum) {
6+
return _sum(root, targetSum, 0);
7+
}
8+
9+
bool _sum(TreeNode? node, int targetSum, int count) {
10+
if (node != null) {
11+
if (node.left == null && node.right == null) {
12+
return node.val + count == targetSum;
13+
}
14+
return _sum(node.left, targetSum, node.val + count) ||
15+
_sum(node.right, targetSum, node.val + count);
16+
}
17+
return false;
18+
}
19+
}

test/easy/path_sum_test.dart

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import 'package:leetcode_dart/common/tree_node.dart';
2+
import 'package:leetcode_dart/easy/path_sum.dart';
3+
import 'package:test/test.dart';
4+
5+
void main() {
6+
group(
7+
'Example tests',
8+
() {
9+
final ps = Solution();
10+
test(
11+
'true',
12+
() => expect(
13+
true,
14+
ps.hasPathSum(
15+
TreeNode(
16+
5,
17+
TreeNode(
18+
4,
19+
TreeNode(
20+
11,
21+
TreeNode(7),
22+
TreeNode(2),
23+
),
24+
null),
25+
TreeNode(
26+
8,
27+
TreeNode(
28+
13,
29+
TreeNode(
30+
4,
31+
TreeNode(1),
32+
null,
33+
),
34+
),
35+
),
36+
),
37+
22,
38+
),
39+
),
40+
);
41+
test(
42+
'false',
43+
() => expect(
44+
false,
45+
ps.hasPathSum(
46+
TreeNode(
47+
1,
48+
TreeNode(2),
49+
TreeNode(3),
50+
),
51+
5,
52+
),
53+
),
54+
);
55+
test(
56+
'false',
57+
() => expect(
58+
false,
59+
ps.hasPathSum(
60+
null,
61+
0,
62+
),
63+
),
64+
);
65+
},
66+
);
67+
}

0 commit comments

Comments
 (0)