我是新手堆叠流量,对任何错误感到抱歉,但我想回答这个问题:
“编写一个方法,将两个二叉树t1,t2和二叉树节点v作为参数。它构造并返回一个新的二叉树,其中v为其根,其左子树为t1,右子树为T2“。
我已经做了几个小时的尝试,似乎甚至不能制作一个二叉树..老师不会真正解释并希望我们使用对象来做。这是她希望我们使用的格式..有人可以帮助我..
注释掉的东西只是我试图让某些东西发挥作用。
public class treeNode
{
private Object da;
private treeNode left;
private treeNode right;
public treeNode(Object newItem)
{
da = newItem;
left = null;
right = null;
}
public treeNode(Object newItem, treeNode leftNode, treeNode rightNode)
{
da = newItem;
left = leftNode;
right = rightNode;
}
public void setItem(Object newItem)
{
da = newItem;
}
public Object getItem()
{
return da;
}
public void setLeft(treeNode leftNode)
{
left = leftNode;
}
public treeNode getLeft()
{
return left;
}
public void setRight(treeNode rightNode)
{
right = rightNode;
}
public treeNode getRight()
{
return right;
}
//------------------------
public void buildTree()
{
}
//public void combine (l , r)
//{
// T = 5;
// setLeft(l);
// setRight(r);
// return T;
//}
//-----------------------
public static void main (String args [])
{
// treeNode a = new treeNode(5);
// treeNode b = new treeNode(8);
// treeNode c = new treeNode(2);
// a.setLeft(b);
// a.setRight(c);
// System.out.println(a.da);
// System.out.println(a.getLeft() );
// System.out.println(a.getRight() );
// treeNode t = new treeNode();
// t.left = t1;
// t.right = t2;
// System.out.println(buildTree(t));
}
}
答案 0 :(得分:0)
我的解决方案包含两个类:树和节点。 该解决方案可以只使用Node实现,但是由于您被要求该函数将接收两个树和一个节点,所以我像这样实现它。我不知道你是否了解java泛型(我使用的'T'),如果你不知道,你可以像你发布的代码一样使用Object。我忽略了所有的getter和setter,但当然你可以添加它们。
节点类:
public class Node<T> {
private T data;
private Node right;
private Node left;
public Node(T data) {
this.data = data;
}
public Node(T data, Node right, Node left) {
this.data = data;
this.right = right;
this.left = left;
}
}
树类:
public class Tree<T> {
private Node<T> root;
public Tree(Node root) {
this.root = root;
}
public Node<T> getRoot() {
return root;
}
}
组合功能:
public Tree combine(Tree t1, Tree t2, Node v) {
return new Tree(new Node(v, t1.getRoot(), t2.getRoot()));
}