我正在完成一种作业方法,该方法使用字典中包含单词的 BST 的中序遍历。
我了解如何使用递归来完成中序遍历,但我无法将我的节点值包含在 ArrayList 中,这是该方法所必需的,因为每次该方法再次调用自身时,都会重新创建列表并重新创建所有其他以前的值丢失了。
/**
* Recursive Helper method that returns a list of all the words stored in the subtree rooted at
* current sorted alphabetically from A to Z
*
* @param current pointer to the current DictionaryWord within this dictionaryBST
* @return an ArrayList of all the words stored in the subtree rooted at current
*/
private static ArrayList<String> getAllWordsHelper(DictionaryWord current) {
ArrayList<String> list = new ArrayList<String>();
if (current != null) {
getAllWordsHelper(current.getLeftChild());
list.add(current.getWord());
getAllWordsHelper(current.getRightChild());
}
return list;
}
}
返回一个包含值的 ArrayList 是必需的,我无法将其更改为将一个值作为参数传入,因此我在解决此问题时遇到了一些麻烦 - 我在网上看到的所有其他示例仅打印当前节点。任何建议表示赞赏,谢谢!
呼如林
喵喵时光机
相关分类