2016-07-08 12 views
0

私は、指定されたノードから指定された値のキーを持つノードへのパスを返す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] 

しかし、可能になっている:(Javaの8 Streamsを使用)は、例えばそのような

6, 5, 1, 4 
+0

パスは配列なので、ループ投げしてそのように印刷するのはなぜですか?次に、それがどのように見えるかを制御することができます。 – imtheman

+0

私は試してみましたが、シンタックスエラー@imtheman – liiu

答えて

0

何か:

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

関連する問題