protected void findLeavesOfNode(TreeNode tn, List<TreeNode> addTo){
        if(tn.getChildren().isEmpty()){
            addTo.add(tn);
        } else {
            for(TreeNode t: tn.getChildren()){
                findLeavesOfNode(t, addTo);
            }
        }
    }