Tree: Level Order Traversal

  • + 0 comments

    Here is my solutions using an arrayList and HashMap

    private static HashMap<Integer, List<Integer>> treeLevels = new HashMap<>();
        private static void addLevels(Node node, int level){
            if(node == null){
                return;
            }
            
            List<Integer> levels;
            
            if(treeLevels.containsKey(level)){
                levels = treeLevels.get(level);
            }else{
                levels = new ArrayList<>();
            }
            
            levels.add(node.data);
            treeLevels.put(level, levels);
            addLevels(node.left, level + 1);
            addLevels(node.right, level + 1);
            
        }
    	public static void levelOrder(Node root) {
          addLevels(root, 0);
          for(List<Integer> list: treeLevels.values()){
            for(int val: list){
                System.out.printf("%d ", val);
            }
          }
          
        }