【发布时间】:2013-12-05 23:55:55
【问题描述】:
我正在尝试为 BST 类实现递归插入节点方法
public void insertNode(Node r, Node n)
{
if(r == null)
{
System.out.println("r=n"+ n.data);
r = n;
}
else
{
System.out.println("r=! null finding place in tree for "+ n.data);
if(n.data <= r.data)
{
if(r.left == null)
r.left = n;
else
insertNode(r.left, n);
}
else
{
if(r.right == null)
r.right = n;
else
insertNode(r.right, n);
}
}
}
我试图像这样调用这个方法:
int[] arrTree = {34, 2, 56, 12, 44, 39, 56, 1};
BT t = new BT();
for (int i = 0; i < arrTree.length; i++)
{
//System.out.println("Tree Root = "+ t.getRoot());
BT.Node n = t.new Node(arrTree[i]);
t.insertNode(t.root, n);
}
但我总是得到这个输出:
r=n34
r=n2
r=n56
r=n12
r=n44
r=n39
r=n56
r=n1
Node 是 BT 的内部类。
经过数小时的跑步和尝试不同的事情后,我无法弄清楚我做错了什么。
【问题讨论】:
标签: java recursion binary-search-tree