File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .util .LinkedList ;
2
+ import java .util .Queue ;
3
+
4
+ /**
5
+ * Definition for a binary tree node.
6
+ * public class TreeNode {
7
+ * int val;
8
+ * TreeNode left;
9
+ * TreeNode right;
10
+ * TreeNode() {}
11
+ * TreeNode(int val) { this.val = val; }
12
+ * TreeNode(int val, TreeNode left, TreeNode right) {
13
+ * this.val = val;
14
+ * this.left = left;
15
+ * this.right = right;
16
+ * }
17
+ * }
18
+ */
19
+ class Solution {
20
+ public boolean isSameTree (TreeNode p , TreeNode q ) {
21
+ // 트리 순회를 한다
22
+ // 현재 순회한 값이 다르다면 return false
23
+ if (p ==null && q ==null ) return true ;
24
+ if (p ==null && q !=null ) return false ;
25
+ if (p !=null && q ==null ) return false ;
26
+
27
+ Queue <TreeNode > pQue = new LinkedList <>();
28
+ pQue .add (p );
29
+ Queue <TreeNode > qQue = new LinkedList <>();
30
+ qQue .add (q );
31
+
32
+ while (!pQue .isEmpty () && !qQue .isEmpty ()) {
33
+ TreeNode pNode = pQue .poll ();
34
+ TreeNode qNode = qQue .poll ();
35
+
36
+ if (pNode .val != qNode .val ) return false ;
37
+ if (pNode .left !=null && qNode .left !=null ) {
38
+ pQue .add (pNode .left );
39
+ qQue .add (qNode .left );
40
+ } else if (pNode .left ==null && qNode .left !=null ) {
41
+ return false ;
42
+ } else if (pNode .left !=null && qNode .left ==null ) {
43
+ return false ;
44
+ }
45
+
46
+ if (pNode .right !=null && qNode .right !=null ) {
47
+ pQue .add (pNode .right );
48
+ qQue .add (qNode .right );
49
+ } else if (pNode .right ==null && qNode .right !=null ) {
50
+ return false ;
51
+ } else if (pNode .right !=null && qNode .right ==null ) {
52
+ return false ;
53
+ }
54
+ }
55
+
56
+ return pQue .isEmpty () && qQue .isEmpty ();
57
+
58
+ }
59
+ }
60
+
You can’t perform that action at this time.
0 commit comments