从上到下打印二叉树

此博客链接:

从上到下打印二叉树

题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

 

例如:
给定二叉树: [3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

题解:

        思路:这题和前面有道题重复了,思想还是层次遍历,定义两个列表,一个存储最后的结果,一个存储每次层次遍历的结果。

代码:

 

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> list=new LinkedList();//存最后结果列表
        Queue<TreeNode> queue=new LinkedList();//定义队列遍历每层的的数据
         if(root==null)
        return list;
        queue.add(root);
        while(!queue.isEmpty())
        {
            int len=queue.size();
          List<Integer> mid=new ArrayList();
            for(int i=0;i<len;i++)
            {
                 TreeNode temp=queue.poll();
                 mid.add(temp.val);
                if(temp.left!=null)
                {
                    queue.add(temp.left);
                }
                if(temp.right!=null)
                {
                    queue.add(temp.right);
                }
            }
            list.add(mid);
        }


return list;

    }
}

 

posted @ 2020-08-28 16:08  萍2樱释  阅读(133)  评论(0编辑  收藏  举报