#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main(){
return 0;
}
#undef main
#define TreeNode dummy_Tree_node
struct TreeNode{
}
;
#undef TreeNode
class Solution{
public:
TreeNode* removeLeafNodes(TreeNode* root, int target){
if(root == NULL){
return root;
}
root->left = removeLeafNodes(root->left, target);
root->right = removeLeafNodes(root->right, target);
if(root->left==NULL && root->right==NULL && root->val==target){
root = NULL;
}
return root;
}
}
;
// cLay varsion 20200119-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// #define TreeNode dummy_Tree_node
// struct TreeNode {};
// #undef TreeNode
//
// class Solution {
// public:
// TreeNode* removeLeafNodes(TreeNode* root, int target) {
// if(root == NULL) return root;
// root->left = removeLeafNodes(root->left, target);
// root->right = removeLeafNodes(root->right, target);
// if(root->left==NULL && root->right==NULL && root->val==target) root = NULL;
// return root;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KI2RlZmluZSBUcmVlTm9kZSBkdW1teV9UcmVlX25vZGUKc3RydWN0IFRyZWVOb2Rlewp9CjsKI3VuZGVmIFRyZWVOb2RlCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBUcmVlTm9kZSogcmVtb3ZlTGVhZk5vZGVzKFRyZWVOb2RlKiByb290LCBpbnQgdGFyZ2V0KXsKICAgIGlmKHJvb3QgPT0gTlVMTCl7CiAgICAgIHJldHVybiByb290OwogICAgfQogICAgcm9vdC0+bGVmdCA9IHJlbW92ZUxlYWZOb2Rlcyhyb290LT5sZWZ0LCB0YXJnZXQpOwogICAgcm9vdC0+cmlnaHQgPSByZW1vdmVMZWFmTm9kZXMocm9vdC0+cmlnaHQsIHRhcmdldCk7CiAgICBpZihyb290LT5sZWZ0PT1OVUxMICYmIHJvb3QtPnJpZ2h0PT1OVUxMICYmIHJvb3QtPnZhbD09dGFyZ2V0KXsKICAgICAgcm9vdCA9IE5VTEw7CiAgICB9CiAgICByZXR1cm4gcm9vdDsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAyMDAxMTktMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyAjZGVmaW5lIFRyZWVOb2RlIGR1bW15X1RyZWVfbm9kZQovLyBzdHJ1Y3QgVHJlZU5vZGUge307Ci8vICN1bmRlZiBUcmVlTm9kZQovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgVHJlZU5vZGUqIHJlbW92ZUxlYWZOb2RlcyhUcmVlTm9kZSogcm9vdCwgaW50IHRhcmdldCkgewovLyAgICAgaWYocm9vdCA9PSBOVUxMKSByZXR1cm4gcm9vdDsKLy8gICAgIHJvb3QtPmxlZnQgPSByZW1vdmVMZWFmTm9kZXMocm9vdC0+bGVmdCwgdGFyZ2V0KTsKLy8gICAgIHJvb3QtPnJpZ2h0ID0gcmVtb3ZlTGVhZk5vZGVzKHJvb3QtPnJpZ2h0LCB0YXJnZXQpOwovLyAgICAgaWYocm9vdC0+bGVmdD09TlVMTCAmJiByb290LT5yaWdodD09TlVMTCAmJiByb290LT52YWw9PXRhcmdldCkgcm9vdCA9IE5VTEw7Ci8vICAgICByZXR1cm4gcm9vdDsKLy8gICB9Ci8vIH07Cg==