public class TreeNode {
private TreeNode left;
private TreeNode right;
private String data = null;
}
public class BinaryTree {
//只有这一个属性
private TreeNode root;
//销毁二叉树
public void deleteTree(){...}
} 是这样写了一个二叉树的模型,销毁的时候用了后序遍历算法将每一个结点指向 null,请问 BinaryTree 实例中所有的属性都为 null 但是实例本身不为 null 我还需要处理它吗?
1
pwrliang 2019-04-09 12:19:06 +08:00 via Android
没太懂实例本身不为 null 是什么意思。我觉得销毁 tree 把根节点的引用弄丢了,gc 算法搜不到了就会把树的所有节点当成 garbage 回收。
|
2
mart1nN OP 我是这样:tree 实例里有一个 node 类的根结点属性。只把根结点的引用赋 null,tree 实例确实还是存在的。但是听你的意思是可以直接 tree = null ?因为我没了解过 jvm,不明白这样合适吗?不知道 gc 是怎么的回收这么大一棵树。。。
|
3
kiddult 2019-04-09 15:46:30 +08:00
@mart1nN 你这个场景应该是在学习数据结构或者算法?如果是的话,tree=null 不需要在函数里面实现,这个由调用 Tree 的方法负责
|
5
eret9616 2019-04-09 20:57:29 +08:00
BinaryTree 中都有什么属性啊 你倒是讲讲
|