#include <stdio.h>
#include <stdlib.h>
// Define a structure for tree nodes
struct Node {
    int data;
    struct Node *left, *right;
};
// Function to create a new node 
struct Node* newNode(int(data)){
    if (data == 0)
    return NULL; // 0 indicates missing node
    struct Node* node = (struct Node*)mallc(sizeof(struct Node));
    node->data = data;
    node->left = node->right = NULL;
    return node;
}
// Function to bulid the binary tree from level order input
struct Node* bulidTree(int arr[], int n){
    if (n == 0 || arr[0] == 0)
    return NULL;

    struct Node* root = newNode(arr[0]);
    struct Node* queue = (struct Node**)malloc(n * sizeof(struct Node*));
    int front = 0; rear = 0;
    queue[rear++] = root;
    int i =1;
    while (i < n && front <rear){
        struct Node*current = queue[front++];
        // Left child
        if ( )
    }
}