算法题第24题----- 二叉树的层次遍历,队列实现,难度(中等)

题目

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

示例 1:

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

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

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

题解

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
          List<List<Integer>> result=new ArrayList<>();
        List<Integer> temp=null;
        Queue<TreeNode> queue=new LinkedList<>();
        if(root==null){return result;}
        queue.add(root);

        while(!queue.isEmpty()){
            int count=queue.size();
            temp=new ArrayList<>();
            for (int j=0;j<count;j++){
                TreeNode elm=queue.remove();
                temp.add(elm.val);
                if(elm.left!=null){queue.add(elm.left);}
                if(elm.right!=null){queue.add(elm.right);}
            }
            result.add(temp);
        }
     return result;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38941937/article/details/104341970