#include
using namespace std;
class Node
{
public:
int data;
Node *left;
Node *right;
Node(int d)
{
data = d;
left = NULL;
right = NULL;
}
};
void create(Node *&root)
{
int d;
cin >> d;
root = new Node(d);
string left1, right1;
cin >> left1;
if (left1 == “true”)
{
create(root->left);
}
cin >> right1;
if (right1 == “true”)
{
create(root->right);
}
}
void preorder(Node *root)
{
// if (root == NULL)
// {
// return;
// }
// if(root->left==NULL){
// cout<<“END”<<"=>"<data<<"<=END";
// }
// cout<<"=>"<data;
// if(root->right==NULL){
// cout<<“END”<<"=>"<data<<"<=END";
// }
// preorder(root->left);
// preorder(root->right);
}
Node *deleteLeaf(Node *root)
{
if (root == NULL)
{
return NULL;
}
if (root->left == NULL and root->right == NULL)
{
free(root);
return NULL;
}
root->left = deleteLeaf(root->left);
root->right = deleteLeaf(root->right);
return root;
}
int main()
{
Node *root = nullptr;
create(root);
deleteLeaf(root);
preorder(root);
return 0;
}