Node* build(Node* root, int level, int l){
if(l < level && !root){
root = new Node(1);
root->left = build(root->left, level, l + 1);
root->right= build(root->right, level, l + 1);
}
return root;
}
void printBinary(Node* root, std::string str){
if(root){
printBinary(root->left, str + "0");
if(root->left == NULL && root->right == NULL)
std::cout<<"["<<str<<"]"<<std::endl;
printBinary(root->right, str + "1");
}
}