我的教授给了我大部分代码。我们被要求编写并测试用于计算二叉树高度的递归方法。这是我的身高等级
public int height(TreeNode root)
{
if(root == null)
{
return 0;
}
else
{
return 1 + Math.max(height(root.lc),
height(root.rc));
}
}
public class MainBinaryTreeWithLNRTraversal
{
public static void main(String[] arg
{
BinaryTreeWithLNRTraversal t = new BinaryTreeWithLNRTraversal();
Listing l;
Listing l1 = new Listing("Ann", "1st Avenue", "111 1111");
Listing l2 = new Listing("Bill", "2nd Avenue", "222 2222" );
Listing l3 = new Listing("Carol", "3rd Avenue", "333 3333");
Listing l4 = new Listing("Mike", "4th Avenue", "444 4444");
Listing l5 = new Listing("Pat", "5th Avenue", "555 5555");
Listing l6 = new Listing("Sally", "6th Avenue", "666 6666");
Listing l7 = new Listing("Ted", "7th Avenue", "777 7777");
Listing l8 = new Listing("Vick", "8th Avenue", "888 8888");
Listing l9 = new Listing("Will", "9th Avenue", "999 9999");
Listing l10 = new Listing("Zack", "11th Avenue", "101 0101");
Listing l11 = new Listing("Zeek", "12th Avenue", "121 2121");
System.out.println("Tyler Hansen \n");
// insert the nodes
t.insert(l9);
t.insert(l7);
t.insert(l10);
t.insert(l2);
t.insert(l8);
t.insert(l1);
t.insert(l4);
t.insert(l3);
t.insert(l6);
t.insert(l5);
//Output all the nodes in NLR left tree then right tree order
t.showAll();
t.height();
}
}
我不知道要把什么放到高度括号中。任何帮助或提示将不胜感激,如果需要,我可以提供更多的代码。
答案 0 :(得分:0)
您需要使用height()
的根节点调用t
。
由于您没有包含BinaryTreeWithLNRTraversal
的定义,我认为它与此有关:https://github.com/DavidSchirduan/ClassProjects/blob/master/CSCI230-java2/Assignment4/BinarySearchTree.java
由于没有公共访问器来获取树的根节点,因此您的代码将如下所示:
System.out.println(height(t.root));
如果您的班级和BinaryTreeWithLNRTraversal
位于同一个套餐中,这将有效。否则,您需要修改BinaryTreeWithLNRTraversal
的代码和/或要求您的教授包含一个用于获取根节点的公共访问器。