Untitled

 avatar
unknown
c_cpp
2 years ago
790 B
8
Indexable
class Solution{
  public:
  void helper(trie_node_t *root,int pos,char key[],int &n,bool &flag){
      //base case
      if(!root)return;
      if(pos == n){
          if(root->value){
              root->value--;
              flag=true;
          }
      }
      helper(root->children[key[pos]-'a'],pos+1,key,n,flag);
      if(flag)root->value--;
      if(root->children[key[pos]-'a']->value==0){
          trie_node *tmp = root->children[key[pos]-'a'];
          root->children[key[pos]-'a'] = NULL;
          delete(tmp);
      }
      
      
  }
  void deleteKey(trie_node_t *root, char key[])
  {
    //Code here
   
   // int c = sizeof(key)/sizeof(key[0]);
    int c = strlen(key);
    //cout<<" ys "<<c<<" size "<<endl;
    bool flag = false;
    helper(root,0,key,c,flag);
  }
};
Editor is loading...