[Algorithm/java] BinaryTree_Level_Order
Problem
上のようなバイナリツリーがあることを想像してみてください.
Queueで解く.
階層別にリストに入れて検討しなければならない.
result : [[7],[2,9],[1,5,14]]
こんな答えがあるはずだ.
Code
package stack_queue;
import java.util.*;
class TreeNode{
int val;
TreeNode left, right;
TreeNode(int x){
this.val = x;
}
}
public class BinaryTree_Level_Order {
//Queue
public static void main(String[] args){
TreeNode root = new TreeNode(3);
root.left = new TreeNode(4);
root.right = new TreeNode(5);
root.left.left = new TreeNode(6);
root.left.right = new TreeNode(7);
System.out.println(solve(root));
}
public static List<List<Integer>> solve(TreeNode root){
List<List<Integer>> result = new ArrayList();
if(root==null){
return result;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
//2
while(!queue.isEmpty()){
int size = queue.size();
List<Integer> list = new LinkedList<>();
for(int i=0; i<size; i++){
TreeNode node = queue.poll(); //값을 뺀다.
list.add(node.val);
if(node.left != null){
queue.offer(node.left);
}
if(node.right != null){
queue.offer(node.right);
}
}
result.add(list);
}
return result;
}
}
📌 KeyNote
Reference
この問題について([Algorithm/java] BinaryTree_Level_Order), 我々は、より多くの情報をここで見つけました https://velog.io/@jaeyunn_15/Algorithmjava-BinaryTreeLevelOrderテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol