菜鸟一个关于清空二叉树的问题
以下是我的代码(java),盼高手帮我找一下问题,
问题:为什么在我删除后,它还可以打印出来。
//数据结构
class TreeNode
{
public TreeNode left = null;
public TreeNode right = null;
public int data;
public TreeNode(int data)
{
this.data = data;
}
public TreeNode(int data,TreeNode left,TreeNode right)
{
this.data = data;
this.left = left;
this.right = right;
}
}
//实现二叉树功能的类
class treeMethord
{
int tem = 0;
int left = 0;
int right = 0;
public TreeNode deleteTree(TreeNode t)
{
if(t != null){
deleteTree(t.left);
deleteTree(t.right);
//freeTreeNode(t);
t = null;
}
return t;
}
public void printTree(TreeNode t, int level)
{
if(t != null){
printTree(t.right,level + 1);
indent(level);
System.out.println(t.data);
printTree(t.left,level + 1);
}
}
public void indent(int num)
{
String tem = " ";
for(int i = 0; i < num; i++)
System.out.print(tem);
}
public TreeNode getTreeNode(int data,TreeNode left,TreeNode right)
{
TreeNode t = new TreeNode(data,left,right);
return t;
}
public void freeTreeNode(TreeNode t)
{
t = null;
}
}
//运行的程序(文件名为:sort.java),所有类全在一个文件中
public class sort implements displayTree
{
public int[] sort = {12,4,54,94,99,23,34,22,67,02};
public static void main(String[] args)
{
treeMethord m = new treeMethord();
TreeNode t = m.getTreeNode(1,m.getTreeNode(2,m.getTreeNode(4,null,null),null),
//m.getTreeNode(3,null,m.getTreeNode(5,null,null)));
m.getTreeNode(3,null,null));
System.out.println("---------------------------");
System.out.println("output treeNode");
m.printTree(t,2);
System.out.println("---------------------------");
System.out.println("delete tree");
m.deleteTree(t);
//t = null;
m.printTree(t,5);
}