티스토리 뷰

728x90
반응형

 

 

 

지난 포스팅의 자바 Day 23 강좌 리뷰에 이어

이번 포스팅에서는 Day 23 자바 코드 리뷰를 진행해보자.

 

Day 23

 

 


 

이번 문제는 넓이 우선 탐색으로

트리의 값을 출력하는게 문제였다.

 

소스코드를 살펴보며 좀 더 이야기해보자.

 


import java.util.*;
import java.io.*;
class Node{
    Node left,right;
    int data;
    Node(int data){
        this.data=data;
        left=right=null;
    }
}
class Solution{
    static LinkedList<Integer> queue = new LinkedList();

    static void levelOrder(Node root){
        //Write your code here
        Queue<Node> queue = new LinkedList<>();
        queue.add(root);
        while(queue.peek()!=null) {
            Node node = queue.remove();
            System.out.print(""+node.data+" ");
            if(node.left!=null){
                queue.add(node.left);
            }
            if(node.right!=null) {
                queue.add(node.right);
            }
        }
    }

    public static Node insert(Node root,int data){
        if(root==null){
            return new Node(data);
        }
        else{
            Node cur;
            if(data<=root.data){
                cur=insert(root.left,data);
                root.left=cur;
            }
            else{
                cur=insert(root.right,data);
                root.right=cur;
            }
            return root;
        }
    }
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int T=sc.nextInt();
        Node root=null;
        while(T-->0){
            int data=sc.nextInt();
            root=insert(root,data);
        }
        levelOrder(root);
    }
}

Solution.java

 

 

 

 

우리가 구현해야 하는 부분은

static void levelOrder(Node root){
    //Write your code here
    Queue<Node> queue = new LinkedList<>();
    queue.add(root);
    while(queue.peek()!=null) {
        Node node = queue.remove();
        System.out.print(""+node.data+" ");
        if(node.left!=null){
            queue.add(node.left);
        }
        if(node.right!=null) {
            queue.add(node.right);
        }
    }
}

다음 메서드였는데

필자도 인터넷의 도움을 받아 코드를 작성하였다.

(참고한 링크 - 글자 클릭 시 이동)

 

 

딱히 소스코드를 이해하는 데에는

큰 어려움이 없을 텐데

직접 구현하는 것이 필자에게는 조금 어려웠다.

 

추후에 한 번 복습해야겠다고 다짐했다.

 

 


 

그럼 오늘도 열공하자. 😊

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함
반응형
250x250