如何使用java为二进制搜索树创建深度副本
我想要一份这棵树的深度副本,标题应该和下面给出的相同, 它应该像我们描述的那样工作, 此构造函数将创建一个二元搜索树,它是由此构造函数的lone参数给定的现有二元搜索树的深层副本如何使用java为二进制搜索树创建深度副本,java,binary-search-tree,Java,Binary Search Tree,我想要一份这棵树的深度副本,标题应该和下面给出的相同, 它应该像我们描述的那样工作, 此构造函数将创建一个二元搜索树,它是由此构造函数的lone参数给定的现有二元搜索树的深层副本 public class BinarySearchTree { public class TreeNode { private int item; private TreeNode leftLink; private TreeNode rightLink; // One constr
public class BinarySearchTree
{
public class TreeNode
{
private int item;
private TreeNode leftLink;
private TreeNode rightLink;
// One constructor for TreeNode
///////////////////////////////////////////////////////
public TreeNode(int newItem, TreeNode left, TreeNode right)
{
item = newItem;
leftLink = left;
rightLink = right;
}
} // End of TreeNode inner class
// Declaration of class BinarySearchTree begins here.
// Three instance variables.
private TreeNode root;
private TreeNode parent; // parent node of a target node being sought
private int parentLink; // pointer number of a parent node being sought
public BinarySearchTree( )
{
root = parent = null;
parentLink = 0; // no such pointer at the beginning
}
您可以向树节点添加一个函数:
public BinarySearchTree (BinarySearchTree bst)
{
//your code should be here
}
// more codes here but given code is ok for question
}
然后:
这是一个例子,当然,你应该注意空值
您可以在这里找到一个更好的示例:您需要给我们的不仅仅是一块代码,请参阅。
public TreeNode deepCopy() {
return new TreeNode(item, leftLink.deepCopy(), rightLink.deepCopy())
}
public BinarySearchTree (BinarySearchTree bst) {
root = bst.root.deepCopy();
parent = bst.parent.deepCopy();
parentLink = bst.parentLink;
}