Java 二叉树中的Remove方法
我正在尝试创建一个从二叉树中删除节点的方法,但我遇到了一个问题,看起来还可以,但我有另一个方法来打印所有节点,在“删除”一个特定节点后,我使用了打印方法,但它会打印所有节点,包括我已经删除的节点Java 二叉树中的Remove方法,java,binary-tree,nodes,Java,Binary Tree,Nodes,我正在尝试创建一个从二叉树中删除节点的方法,但我遇到了一个问题,看起来还可以,但我有另一个方法来打印所有节点,在“删除”一个特定节点后,我使用了打印方法,但它会打印所有节点,包括我已经删除的节点 public class BinaryTree { Node root; Node n; private class Node { public Node f; //father public Node right; pub
public class BinaryTree
{
Node root;
Node n;
private class Node
{
public Node f; //father
public Node right;
public Node left;
public int key; // key
public String Student;
public int Mark;
public Node(int key)
{
right = null;
left = null;
f = null;
Student = null;
Mark = 0;
}
}
public void remove()
{
System.out.println("");
System.out.println("Which student do you want to delete? Write down his ID.");
int id = Genio.getInteger();
n = new Node(id);
Node temporal = root;
if(root == null)
{
System.out.println("This tree is empty");
}
else
{
while(temporal != null)
{
n.f = temporal;
if(n.key == temporal.key)
{
if(n.f.right == null && n.f.left == null)
{
n = null;
temporal = null;
}
}
else if(n.key >= temporal.key)
{
temporal = temporal.right;
}
else
{
temporal = temporal.left;
}
}
}
}
}
尝试添加
this.key=key编码>到节点
构造函数。这有点重要。@4castle我刚试过,但没什么变化。D:无论如何,谢谢!!