본문 바로가기
알고리즘/📌leetcode

Binary Tree Level Order Traversal

by IMSfromSeoul 2021. 11. 30.

📌 문제

  • 자식 노드들의 값을 level별로 묶고, 순회하면서 출력할 것.
https://leetcode.com/problems/binary-tree-level-order-traversal/submissions/

📌 문제 풀이

📌 코드

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/**
 * date : 21.11.29
 * link : https://leetcode.com/problems/binary-tree-level-order-traversal/
 * memo : 강좌 위치로는 queue / stack 에 존재
 */

public class MainV2 {
    public static void main(String[] args) {
        TreeNode node = new TreeNode(3);
        node.left = new TreeNode(9);
        node.right = new TreeNode(20);
        node.right.left = new TreeNode(15);
        node.right.right = new TreeNode(7);

        Solution solution = new Solution();
        solution.levelOrder(node);
    }
      public static class TreeNode {
          int val;
          TreeNode left;
          TreeNode right;
          TreeNode() {}
          TreeNode(int val) { this.val = val; }
          TreeNode(int val, TreeNode left, TreeNode right) {
              this.val = val;
              this.left = left;
              this.right = right;
          }
      }

    static class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {

            if(root==null) return new ArrayList<>();

            Queue<TreeNode> queue = new LinkedList<>();
            List<List<Integer>> result = new ArrayList<>();

            queue.offer(root);

            while(!queue.isEmpty()){
                List<Integer> list = new ArrayList<>();
                int size = queue.size();

                while(size -- >0){
                    TreeNode poll = queue.poll();
                    list.add(poll.val);

                    if(poll.left !=null){
                        queue.offer(poll.left);
                    }
                    if(poll.right !=null){
                        queue.offer(poll.right);
                    }
                }
                result.add(list);
            }
            return result;
        }
    }
}

'알고리즘 > 📌leetcode' 카테고리의 다른 글

Max Area of Island  (0) 2021.11.30
Maximum Depth of Binary Tree  (0) 2021.11.30
BaseBall Game , Valid Parentheses  (0) 2021.11.28
Reverse LinkedList  (0) 2021.11.28
Merge K Sorted List  (0) 2021.11.28

댓글