LeetCode: Binary Tree Level Order Traversal 层序遍历二叉树

 Binary Tree Level Order Traversal 

题目描述:

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:
Given binary tree {3,9,20,#,#,15,7},

    3
   / \
  9  20
    /  \
   15   7

return its level order traversal as:

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

题目解答:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

/**

     * 实质是二叉树的广度优先搜索

     * 利用一个辅助队列保存被访问的当前节点的左右孩子,

     * 调整进出队列的顺序以实现层序遍历

     */

    public List<List<Integer>> levelOrder(TreeNode root) {

         List<List<Integer>> result=new ArrayList<>();

          

         if(root==null){

            return result;

         }

         

        /**

         * 一般来说,队列的实现选择LinkedList即可

         * 队列保存节点就不用找什么变量了

         */

        Queue<TreeNode> queue=new LinkedList<>();

        queue.offer(root);

        //首先把头结点的值保存到结果集,然后把左右子节点分别进入队列

       while(!queue.isEmpty()){//需要使用isEmptyy判断,不能使用null

           List<Integer> temp=new ArrayList<>();

           /**

            * error!这里对进行循环的过程,队列长度是在不断变化的

            * size需要等于队列出队前的长度

            */

           int size =queue.size();

           for(int i=0;i<size;i++){

               TreeNode node=queue.poll();

               temp.add(node.val);

               if(node.left!=null)

                 queue.offer(node.left);

               if(node.right!=null)

                 queue.offer(node.right);

           }

           //当前队列全部poll,到这里已经完成了一层的遍历

           result.add(temp);

       }

        return result;

    }

  

时间: 2024-09-17 20:53:42

LeetCode: Binary Tree Level Order Traversal 层序遍历二叉树的相关文章

[LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)

目录:1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次遍历从低往高输出 BFS 3.Maximum Depth of Binary Tree - 求二叉树的深度 DFS4.Balanced Binary Tree - 判断平衡二叉树 DFS5.Path Sum - 二叉树路径求和判断DFS 题目概述:Given a binary tree, return

[LeetCode]102.Binary Tree Level Order Traversal

[题目] Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 return its level order traversal as: [ [3], [9,20], [15,7

[LeetCode]--107. Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). For example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its bottom-up level o

【LeetCode从零单排】No102 Binary Tree Level Order Traversal

题目        Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 return its level order traversal as: [ [3], [9,20], [

Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7   return its level order traversal as: [ [3], [9,20], [15,7] ]

Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7   return its bottom-up level order

[LeetCode]103.Binary Tree Zigzag Level Order Traversal

[题目] Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 retur

Binary Tree Zigzag Level Order Traversal

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7   return it

[LeetCode] Binary Tree Preorder Traversal

Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, return [3,2,1]. Note: Recursive solution is trivial, could you do it iteratively? 递归实现代码 /*********************************************