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

2021/11/6 23:14:27

本文主要是介绍力扣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;
   
           
    }
}

 



这篇关于力扣102题(二叉树的层序遍历)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程