ツリーのすべての要素を削除するコードを作成しました。次の提案が必要です。
- reverseTreeStack メソッドで、stack メソッドのパラメータを使わずに設計できますか?
- コード全体を 1 つのメソッドでより良い設計で設計できますか?
UPDATE : reverseTreeStack の戻り値の型を void に変更しました。スタックの追加変数を削除しました。
public class DeleteTree {
public static void deleteTree(BinaryTreeNode root)
{
Stack stack = new Stack();
reverseTreeStack(stack, root);
while (!stack.isEmpty())
{
BinaryTreeNode node = (BinaryTreeNode)stack.pop();
System.out.println("---------Deleting----------->" + node.getData());
node = null;
}
}
public static void reverseTreeStack(Stack stack,BinaryTreeNode root)
{
if (root != null)
{
stack.push(root);
reverseTreeStack(stack,root.getLeft());
reverseTreeStack(stack, root.getRight());
}
}
}