我写了一个代码来删除树的所有元素。需要以下建议:
- 在 reverseTreeStack 方法中,我可以不使用堆栈方法参数进行设计吗?
- 我可以用一种更好的设计方法设计整个代码吗?
更新:将 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());
}
}
}