力扣102题(二叉树的层序遍历)

102、二叉树的层序遍历

基本思想:

从上到下、从左到右依次依次将每个数放入到队列中,然后按顺序依次打印就是想要的结果

具体实现:

1.先将二叉树的根节点放到队列que中

2.第一层循环中

  定义列表itemList放二叉树每一层的结果

3.第二程循环中

  len控制每一层,减到0的话说明二叉树的一层遍历完

  如果队列que不为空,

  弹出队列头加入列表itemList

       然后判断节点是否有孩子,有的话,把孩子放入队列que

4.

代码:

class Solution {
    List<List<Integer>> resList = new ArrayList<List<Integer>>();
    public List<List<Integer>> levelOrder(TreeNode root) {
        if (root == null)  return resList;
        Queue<TreeNode>  que = new LinkedList<TreeNode>();
        que.offer(root);

        while (!que.isEmpty()){
            List<Integer> itemList = new ArrayList<Integer>();
            int len = que.size();

            while (len > 0){
                TreeNode tmpNode = que.poll();
                itemList.add(tmpNode.val);

                if (tmpNode.left != null) que.offer(tmpNode.left);
                if (tmpNode.right != null) que.offer(tmpNode.right);
                len--;
            }
            resList.add(itemList);
         }
         return resList;
   
           
    }
}
原文地址:https://www.cnblogs.com/zhaojiayu/p/15518639.html