Skip to content

Commit db6635d

Browse files
committed
2023-02-11 update: added "100. Same Tree"
1 parent 35127c4 commit db6635d

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
3131
| 88. Merge Sorted Array | [Link](https://leetcode.com/problems/merge-sorted-array/) | [Link](./lib/easy/merge_sorted_array.dart) |
3232
| 94. Binary Tree Inorder Traversal | [Link](https://leetcode.com/problems/binary-tree-inorder-traversal/) | [Link](./lib/easy/binary_tree_inorder_traversal.dart) |
3333
| 100. Same Tree | [Link](https://leetcode.com/problems/same-tree/) | [Link](./lib/easy/same_tree.dart) |
34+
| 101. Symmetric Tree | [Link](https://leetcode.com/problems/symmetric-tree/) | [Link](./lib/easy/symmetric_tree.dart) |

lib/easy/symmetric_tree.dart

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// https://leetcode.com/problems/symmetric-tree/
2+
import '../common/tree_node.dart';
3+
4+
class Solution {
5+
bool isSymmetric(TreeNode? root) {
6+
return _isMirror(root?.left, root?.right);
7+
}
8+
9+
bool _isMirror(TreeNode? l, TreeNode? r) {
10+
if (l != null && r != null && l.val == r.val) {
11+
return _isMirror(l.left, r.right) && _isMirror(l.right, r.left);
12+
}
13+
return l == null && r == null;
14+
}
15+
}

test/easy/symmetric_tree_test.dart

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

0 commit comments

Comments
 (0)