Skip to content

Commit 91148be

Browse files
committed
add: java: 7-100
1 parent ae51983 commit 91148be

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// 100: Same Tree
2+
// https://leetcode.com/problems/same-tree/
3+
4+
import java.util.Queue;
5+
import java.util.ArrayList;
6+
import java.util.LinkedList;
7+
8+
9+
class Solution {
10+
public static class TreeNode {
11+
Integer val;
12+
TreeNode left;
13+
TreeNode right;
14+
TreeNode() {}
15+
TreeNode(Integer val) { this.val = val; }
16+
TreeNode(Integer val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; }
17+
}
18+
19+
public static class Tree {
20+
TreeNode root;
21+
Tree() { this.root = null; }
22+
}
23+
24+
private static TreeNode creator(Integer[] values, TreeNode root, int i, int n) {
25+
if (n==0) return null;
26+
if (i<n) {
27+
TreeNode temp = new TreeNode(values[i]);
28+
root = temp;
29+
root.left = creator(values, root.left, 2*i+1, n);
30+
root.right = creator(values, root.right, 2*i+2, n);
31+
}
32+
return root;
33+
}
34+
35+
public static void createTree(Tree tree, Integer[] inputs) {
36+
tree.root = creator(inputs, tree.root, 0, inputs.length);
37+
}
38+
39+
public static void showTree(TreeNode root) {
40+
Queue<TreeNode> q = new LinkedList<>();
41+
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
42+
ArrayList<Integer> c = new ArrayList<>();
43+
if (root == null) { System.out.println("Empty !"); return; }
44+
q.add(root);
45+
q.add(null);
46+
while (!q.isEmpty()) {
47+
TreeNode t = q.poll();
48+
if (t==null) {
49+
result.add(c);
50+
c = new ArrayList<>();
51+
if (q.size() > 0) q.add(null);
52+
} else {
53+
c.add(t.val);
54+
if (t.left!=null) q.add(t.left);
55+
if (t.right!=null) q.add(t.right);
56+
}
57+
}
58+
59+
System.out.print("["); for (var x : result) {
60+
System.out.print("["); for (var y : x) {
61+
if (y==null) { System.out.print("NULL,"); continue; }
62+
System.out.print(y+",");
63+
} System.out.print("\b],");
64+
} System.out.println("\b]");
65+
}
66+
67+
68+
// SOLUTION
69+
public boolean isSameTree(TreeNode p, TreeNode q) {
70+
if (p == null && q == null) return true;
71+
if (p == null || q == null) return false;
72+
if (p.val != q.val) return false;
73+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
74+
}
75+
76+
77+
public static void main(String[] args) {
78+
Solution o = new Solution();
79+
Tree p = new Tree();
80+
Tree q = new Tree();
81+
82+
// INPUT
83+
Integer[] pn = {1,2,3};
84+
createTree(p, pn);
85+
Integer[] qn = {1,2,3};
86+
createTree(q, qn);
87+
88+
// OUTPUT
89+
var result = o.isSameTree(p.root, q.root);
90+
System.out.println(result);
91+
}
92+
}

0 commit comments

Comments
 (0)