From 3b97f334ce3a26a2144c9209706603e2075da287 Mon Sep 17 00:00:00 2001 From: rohive <105122071+rohive@users.noreply.github.com> Date: Wed, 19 Apr 2023 15:04:52 +0100 Subject: [PATCH] Update Trie.java Before we decide to delete a node we need to check if endOfWord for some other prefix of same word or not. For example: Trie has ["abc", "abcd", "abcde"] delete "abcde" will delete "abc" and "abcd" --- src/com/interview/suffixprefix/Trie.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/interview/suffixprefix/Trie.java b/src/com/interview/suffixprefix/Trie.java index d91dc8f1..27572ca3 100644 --- a/src/com/interview/suffixprefix/Trie.java +++ b/src/com/interview/suffixprefix/Trie.java @@ -134,7 +134,7 @@ private boolean delete(TrieNode current, String word, int index) { if (node == null) { return false; } - boolean shouldDeleteCurrentNode = delete(node, word, index + 1); + boolean shouldDeleteCurrentNode = delete(node, word, index + 1) && !node.endOfWord; //if true is returned then delete the mapping of character and trienode reference from map. if (shouldDeleteCurrentNode) {