[BFS] 10. ツリーエンドノードへのショートパス(BFS)
9989 ワード
Q.コンセプト
下図に示すバイナリツリーでは、ルートノード1からエンドノードまでの最短長は
お探しのプログラムを記入してください.
各パスの長さはルートノードからエンドノードまでで、移動回数はメイン(エッジ)の数です.
長さにしましょう
最短の長さは3番オールまでの長さ1です.
ポリシー
正解
import java.util.*;
class Node{
int data;
Node lt, rt;
public Node(int val) {
data=val;
lt=rt=null;
}
}
public class Main{
Node root;
public int BFS(Node root){
Queue<Node> Q=new LinkedList<>();
Q.offer(root);
int L=0;
while(!Q.isEmpty()){
int len=Q.size();
for(int i=0; i<len; i++){
Node cur=Q.poll();
//무조건 여기서 리턴된다.
if(cur.lt==null && cur.rt==null) return L;
if(cur.lt!=null) Q.offer(cur.lt);
if(cur.rt!=null) Q.offer(cur.rt);
}
L++;
}
// 문법 오류로 임의의 숫자 리턴
return 0;
}
public static void main(String args[]) {
Main tree=new Main();
tree.root=new Node(1);
tree.root.lt=new Node(2);
tree.root.rt=new Node(3);
tree.root.lt.lt=new Node(4);
tree.root.lt.rt=new Node(5);
System.out.println(tree.BFS(tree.root));
}
}
Reference
この問題について([BFS] 10. ツリーエンドノードへのショートパス(BFS)), 我々は、より多くの情報をここで見つけました https://velog.io/@jhjcoding/10.-Tree-말단노드까지의-까장-짧은-경로BFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol