zoukankan      html  css  js  c++  java
  • 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行

    思路:递归,扩容

    增加一个deep参数,内部list数量与deep相同,每个深度对应一个list

    根节点添加到list(deep-1),然后分别对其左右子树递归求每层的节点,深度每到一个孩子+1

    import java.util.ArrayList;
    
    
    /*
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    public class Solution {
        ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
            ArrayList<ArrayList<Integer>> list=new ArrayList<>();
            depth(pRoot,1,list);
            return list;
        }
            public void depth(TreeNode root,int deep,ArrayList<ArrayList<Integer>> list){
            if(root==null){
                return;
            }
            if(deep>list.size()){
                list.add(new ArrayList<>());
            }
            list.get(deep-1).add(root.val);
            depth(root.left,deep+1,list);
            depth(root.right,deep+1,list);
        }
        
    }
  • 相关阅读:
    week02 线性表
    week01绪论
    第一周作业
    C语言第二次实验作业
    C语言实验报告
    博客作业06--图
    博客作业05--查找
    博客作业04--树
    博客作业03--栈和队列
    博客作业2---线性表
  • 原文地址:https://www.cnblogs.com/jieyi/p/13380026.html
Copyright © 2011-2022 走看看