private void preOrderTraverse(TrieNode node, ArrayList<String> list) { if (node.isEndOfKey()) { list.add(node.toString()); } for (int i = 0; i < TrieNode.NUMCHILDREN; i++) { if (node.getChild((char) i) != null) { preOrderTraverse(node.getChild((char) i), list); } } }
public ArrayList<String> getAllPrefixMatches(String prefix) { // ADD YOUR CODE BELOW TrieNode node = getPrefixNode(prefix); ArrayList<String> stringList = new ArrayList<String>(); if (node.getDepth() == prefix.length()) // make sure whole prefix is matched preOrderTraverse(node, stringList); // ADD YOUR CODE ABOVE HERE return stringList; }