Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- // Refer : https://leetcode.com/problems/check-completeness-of-a-binary-tree/discuss/205682/JavaC++Python-BFS-Level-Order-Traversal
- /*
- Time Complexity: O(N)
- Space Complexity: O(N)
- N = Number of nodes;
- */
- class Solution {
- public boolean isCompleteTree(TreeNode root) {
- if (root == null) {
- return true;
- }
- Queue<TreeNode> queue = new LinkedList();
- queue.offer(root);
- while (queue.peek() != null) {
- TreeNode node = queue.poll();
- queue.offer(node.left);
- queue.offer(node.right);
- }
- while (!queue.isEmpty() && queue.peek() == null) {
- queue.poll();
- }
- return queue.isEmpty();
- }
- }
- /*
- Time Complexity: O(N)
- Space Complexity: O(N)
- N = Number of nodes;
- */
- class Solution {
- public boolean isCompleteTree(TreeNode root) {
- if (root == null) {
- return true;
- }
- Queue<TreeNode> queue = new LinkedList();
- queue.offer(root);
- while (true) {
- TreeNode node = queue.poll();
- if (node.left == null) {
- if (node.right != null) {
- return false;
- }
- break;
- }
- queue.offer(node.left);
- if (node.right == null) {
- break;
- }
- queue.offer(node.right);
- }
- while (!queue.isEmpty()) {
- TreeNode node = queue.poll();
- if (node.left != null || node.right != null) {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement