我目前正在按降序向二进制搜索树添加元素。通过在二进制搜索树中插入TreeNodes
,该方法是使用递归的标准方法:
private void insert(TreeNode paramTreeNode1, TreeNode paramTreeNode2)
{
this.operations += 1;
if (paramTreeNode2.getData() < paramTreeNode1.getData())
{
if (paramTreeNode1.getLeft() == null)
{
paramTreeNode1.setLeft(paramTreeNode2);
}
else
{
insert(paramTreeNode1.getLeft(), paramTreeNode2); // recursive
}
}
else if (paramTreeNode1.getRight() == null)
{
paramTreeNode1.setRight(paramTreeNode2);
}
else
{
insert(paramTreeNode1.getRight(), paramTreeNode2); //recursive
}
}
然而,该方法电流具有> 2000次操作。以TreeNodes
的降序插入BST
以减少操作总数时,有什么更聪明的方法?