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