File tree 1 file changed +14
-20
lines changed
1 file changed +14
-20
lines changed Original file line number Diff line number Diff line change 15
15
*/
16
16
class Solution {
17
17
public boolean isCompleteTree (TreeNode root ) {
18
- List <HelperNode > nodes = new ArrayList <>();
19
- nodes .add (new HelperNode (root , 1 ));
20
- int idx = 0 ;
21
- while (idx < nodes .size ()) {
22
- HelperNode hnode = nodes .get (idx ++);
23
- if (hnode .node != null ) {
24
- nodes .add (new HelperNode (hnode .node .left , 2 * hnode .level ));
25
- nodes .add (new HelperNode (hnode .node .right , 2 * hnode .level + 1 ));
18
+ Queue <TreeNode > queue = new LinkedList <>();
19
+ queue .add (root );
20
+ boolean end = false ;
21
+ while (!queue .isEmpty ()) {
22
+ TreeNode removed = queue .poll ();
23
+ if (removed == null ) {
24
+ end = true ;
25
+ } else {
26
+ if (end ) {
27
+ return false ;
28
+ }
29
+ queue .add (removed .left );
30
+ queue .add (removed .right );
26
31
}
27
32
}
28
- return nodes .get (idx - 1 ).level == nodes .size ();
29
- }
30
- }
31
-
32
-
33
- class HelperNode {
34
- TreeNode node ;
35
- int level ;
36
-
37
- public HelperNode (TreeNode node , int level ) {
38
- this .node = node ;
39
- this .level = level ;
33
+ return true ;
40
34
}
41
35
}
You can’t perform that action at this time.
0 commit comments