删除二进制搜索

时间:2016-07-08 21:29:24

标签: java

我正在使用Path方法,该方法返回从给定节点到具有给定值的键的节点的路径。我的代码返回正确的数字,但它们在括号内。如何取下支架?

 private boolean pathhelp(Node n, int val, ArrayList<Integer> lst){
    if(n == null){
        return false;
    }else if(val < n.key){
        lst.add(n.key);
        return pathhelp(n.left, val, lst);
    }else if(val > n.key ){
        lst.add(n.key);
        return pathhelp(n.right, val, lst);
    }else{
        lst.add(n.key);
        return true;
    }
  }
   public String path(Node node, int value) {
    ArrayList<Integer> path = new ArrayList<Integer>();

    if(pathhelp(root,value,path) == true ){
        System.out.println(path);
        String p = "";
        //build p from path list

        return p;
    }else{
        return "";
    }
 }
  }

实际输出是:

[6, 5, 1, 4]

但它应该是:

6, 5, 1, 4

1 个答案:

答案 0 :(得分:0)

例如(使用Java 8 Streams):

import java.util.*;
import java.util.stream.Collectors;

class Scratch {

    public static void main(String[] args) {
        ArrayList<Integer> path = new ArrayList<Integer>();
        path.add(1);
        path.add(2);

        String asString = path.stream()
                                    .map(Object::toString)
                                    .collect(Collectors.joining(", "));

        System.out.println(asString);
    }
}

您也可以使用Guava的Joiner