Skip to content

Commit 03208e2

Browse files
fix 572
1 parent eee319b commit 03208e2

File tree

2 files changed

+24
-33
lines changed

2 files changed

+24
-33
lines changed

src/main/java/com/fishercoder/solutions/_572.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ private boolean isSameTree(TreeNode p, TreeNode q) {
4242
}
4343

4444
public static class Solution2 {
45-
public boolean isSubtree(TreeNode s, TreeNode t) {
46-
if (s == null) {
45+
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
46+
if (root == null) {
4747
return false;
4848
}
49-
if (same(s, t)) {
49+
if (same(root, subRoot)) {
5050
return true;
5151
}
52-
return isSubtree(s.left, t) || isSubtree(s.right, t);
52+
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
5353
}
5454

5555
private boolean same(TreeNode s, TreeNode t) {
Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,46 @@
11
package com.fishercoder;
22

33
import com.fishercoder.common.classes.TreeNode;
4+
import com.fishercoder.common.utils.TreeUtils;
45
import com.fishercoder.solutions._572;
56
import org.junit.BeforeClass;
67
import org.junit.Test;
78

9+
import java.util.Arrays;
10+
811
import static org.junit.Assert.assertEquals;
912

10-
/**
11-
* Created by fishercoder on 5/6/17.
12-
*/
1313
public class _572Test {
1414
private static _572.Solution1 solution1;
15+
private static _572.Solution2 solution2;
1516
private static boolean expected;
16-
private static boolean actual;
17+
private static TreeNode root;
18+
private static TreeNode subRoot;
1719

1820
@BeforeClass
1921
public static void setup() {
2022
solution1 = new _572.Solution1();
23+
solution2 = new _572.Solution2();
2124
}
2225

2326
@Test
2427
public void test1() {
25-
TreeNode s = new TreeNode(3);
26-
s.left = new TreeNode(4);
27-
s.right = new TreeNode(5);
28-
s.left.left = new TreeNode(1);
29-
s.left.right = new TreeNode(2);
30-
s.left.right.left = new TreeNode(0);
31-
32-
TreeNode t = new TreeNode(4);
33-
t.left = new TreeNode(1);
34-
t.right = new TreeNode(2);
35-
expected = false;
36-
actual = solution1.isSubtree(s, t);
37-
assertEquals(expected, actual);
28+
root = TreeUtils.constructBinaryTree(Arrays.asList(3, 4, 5, 1, 2));
29+
TreeUtils.printBinaryTree(root);
30+
subRoot = TreeUtils.constructBinaryTree(Arrays.asList(4, 1, 2));
31+
expected = true;
32+
assertEquals(expected, solution1.isSubtree(root, subRoot));
33+
assertEquals(expected, solution2.isSubtree(root, subRoot));
3834
}
3935

4036
@Test
4137
public void test2() {
42-
TreeNode s = new TreeNode(3);
43-
s.left = new TreeNode(4);
44-
s.right = new TreeNode(5);
45-
s.left.left = new TreeNode(1);
46-
s.left.right = new TreeNode(2);
47-
48-
TreeNode t = new TreeNode(4);
49-
t.left = new TreeNode(1);
50-
t.right = new TreeNode(2);
51-
expected = true;
52-
actual = solution1.isSubtree(s, t);
53-
assertEquals(expected, actual);
38+
root = TreeUtils.constructBinaryTree(Arrays.asList(3, 4, 5, 1, 2, null, null, null, null, 0));
39+
TreeUtils.printBinaryTree(root);
40+
subRoot = TreeUtils.constructBinaryTree(Arrays.asList(4, 1, 2));
41+
expected = false;
42+
assertEquals(expected, solution1.isSubtree(root, subRoot));
43+
assertEquals(expected, solution2.isSubtree(root, subRoot));
5444
}
45+
5546
}

0 commit comments

Comments
 (0)