Untitled
unknown
plain_text
a year ago
1.3 kB
5
Indexable
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<TreeNode*> ans; unordered_map < int, bool > mp; void getTheRoots(TreeNode* &root, vector<int>& to_delete) { if(root == NULL) return; getTheRoots(root->left,to_delete); getTheRoots(root->right,to_delete); if(mp[root->val]) { if(root->left!=NULL){ ans.push_back(root->left); } if(root->right!=NULL){ ans.push_back(root->right); } root = NULL; } return; } vector<TreeNode*> delNodes(TreeNode* root, vector<int>& to_delete) { for(int i=0;i<to_delete.size();i++) { mp[to_delete[i]] = true; } getTheRoots(root,to_delete); if(root){ ans.push_back(root); } return ans; } };
Editor is loading...
Leave a Comment