打印二叉树中节点的特定路径

时间:2014-11-22 02:15:26

标签: java binary-tree binary-search-tree traversal preorder

我尝试使用预先遍历来查找由字符a-z和A-Z组成的二叉树中的节点,其中左边标记为" 0"然后向右标记为" 1",以便正确的输出看起来像" 00"对于左边两个分支的节点。节点未排序。

到目前为止,我有这个:

static String routeNum = "";      

private static String onePath(BinaryNodeInterface<Character> root, String route) {

    BinaryNodeInterface<Character> temp = root;
    if(temp != null){

    if(temp.hasLeftChild()){
      routeNum = onePath(temp.getLeftChild(),route+"0");

      }
      if(temp.hasRightChild()){
       routeNum = onePath(temp.getRightChild(), route+"1");

      }
    }

    System.out.print(route);
    return route;
}

输出表明我到达了正确的节点,但它没有打印路径。

2 个答案:

答案 0 :(得分:0)

在没有静态String routeNum =&#34;&#34;;

的情况下尝试此代码
private static String onePath(BinaryNodeInterface<Character> root, String route) {

BinaryNodeInterface<Character> temp = root;
if(temp != null){

if(temp.hasLeftChild()){
  route += "0";
  onePath(temp.getLeftChild(),route);

  }
  if(temp.hasRightChild()){
   route += "1";
  onePath(temp.getRightChild(), route);

  }
}

system.out.println(route);
return route;

}

使用

调用此函数
String path = onePath(root, "");
Print(path);

答案 1 :(得分:-1)

您永远不会调用打印方法。您可以使用:

System.out.println(route);

打印出路径字符串。