Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TreeNode * find_forest (vector<TreeNode*> &res, TreeNode *root,unordered_map <int , bool > &del, bool parent_del )
- {
- if (root == nullptr)
- return nullptr;
- int cur = root -> val;
- bool deleted = del[cur];
- if (!deleted && parent_del)
- {
- res.push_back(root);
- }
- root -> left = find_forest(res, root -> left, del,deleted);
- root -> right = find_forest(res, root -> right, del,deleted);
- return deleted ? nullptr : root;
- }
- vector<TreeNode*> delNodes(TreeNode* root, vector<int>& to_delete) {
- unordered_map <int , bool > del;
- vector<TreeNode*> res ;
- for (int i = 0 ; i < to_delete.size(); i++)
- {
- int val = to_delete[i];
- del[val] = true;
- }
- find_forest(res, root, del,true);
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement