Skip to content

Commit 17113ca

Browse files
authored
Merge pull request #20 from fartem/94_Binary_Tree_Inorder_Traversal
2023-02-11 update: added "94. Binary Tree Inorder Traversal"
2 parents f98701c + dc03d01 commit 17113ca

File tree

5 files changed

+75
-0
lines changed

5 files changed

+75
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
2929
| 70. Climbing Stairs | [Link](https://leetcode.com/problems/climbing-stairs/) | [Link](./lib/easy/climbing_stairs.dart) |
3030
| 83. Remove Duplicates from Sorted List | [Link](https://leetcode.com/problems/remove-duplicates-from-sorted-list/) | [Link](./lib/easy/remove_duplicates_from_sorted_list.dart) |
3131
| 88. Merge Sorted Array | [Link](https://leetcode.com/problems/merge-sorted-array/) | [Link](./lib/easy/merge_sorted_array.dart) |
32+
| 94. Binary Tree Inorder Traversal | [Link](https://leetcode.com/problems/binary-tree-inorder-traversal/) | [Link](./lib/easy/binary_tree_inorder_traversal.dart) |

lib/common/tree_node.dart

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class TreeNode {
2+
int val;
3+
TreeNode? left;
4+
TreeNode? right;
5+
6+
TreeNode([
7+
this.val = 0,
8+
this.left,
9+
this.right,
10+
]);
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// https://leetcode.com/problems/binary-tree-inorder-traversal/
2+
import '../common/tree_node.dart';
3+
4+
class Solution {
5+
List<int> inorderTraversal(TreeNode? root) {
6+
final values = <int>[];
7+
_apply(root, values);
8+
return values;
9+
}
10+
11+
void _apply(TreeNode? node, List<int> values) {
12+
if (node != null) {
13+
_apply(node.left, values);
14+
values.add(node.val);
15+
_apply(node.right, values);
16+
}
17+
}
18+
}

test/common/binary_tree_helper.dart

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'package:leetcode_dart/common/tree_node.dart';
2+
3+
class LinkedListHelper {
4+
LinkedListHelper._();
5+
6+
static bool areEqual(TreeNode? f, TreeNode? s) {
7+
while (f != null && s != null) {
8+
if (f.val != s.val) {
9+
return false;
10+
}
11+
return areEqual(f.left, s.left) && areEqual(f.right, s.right);
12+
}
13+
return f == null && s == null;
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import 'package:leetcode_dart/common/tree_node.dart';
2+
import 'package:leetcode_dart/easy/binary_tree_inorder_traversal.dart';
3+
import 'package:test/test.dart';
4+
5+
void main() {
6+
group(
7+
'Example tests',
8+
() {
9+
final btit = Solution();
10+
test(
11+
'[1, 3, 2]',
12+
() => expect(
13+
[1, 3, 2],
14+
btit.inorderTraversal(
15+
TreeNode(
16+
1,
17+
null,
18+
TreeNode(
19+
2,
20+
TreeNode(3),
21+
),
22+
),
23+
),
24+
),
25+
);
26+
test('[]', () => expect([], btit.inorderTraversal(null)));
27+
test('[1]', () => expect([1], btit.inorderTraversal(TreeNode(1))));
28+
},
29+
);
30+
}

0 commit comments

Comments
 (0)