我正在尝试编写一个代码,用于在二叉树中搜索一个元素,然后从该元素开始添加。到目前为止,我可以找到正确的位置并添加到该位置,但我丢失了二叉树的其余部分。
public void add(String addroot, String addleft)
if(root!=nodesearch){
if(root.left!=null){
root=root.left;
add(addroot, addleft);
}
if(root.right!=null){
root=root.right;
add(addroot, addleft);
}
}
else
root=insert();
}
insert() 添加元素并且它工作正常。感谢您的帮助。
好的,这就是我现在的想法。
private BinaryStringNode local_root = root
public void add()
if(root!=nodesearch){
if(local_root.left!=null){
local_root=local_root.left;
add();
}
if(local_root.right!=null){
local_root=local_root.right;
add();
}
}
else
local_root=insert();
}
local_root=insert() 会在 local_root 位置的根上使用 insert 方法吗? local_root=local_root.right 也会通过 root 移动吗?
最佳答案
先把它做成三个独立的函数
void insert(BinaryStringNode root, BinaryStringNode new_node){
}
int add(BinaryStringNode root){
}
BinaryStringNode find(String name){
}
现在尽可能填写代码。
当你想得到总和时,只需调用 add(find(s));
其中 s 是一个字符串
关于java - 如何添加二叉树的特定部分但保持树完好无损(Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632241/