首页 > 其他 > 详细

102. 二叉树的层序遍历

时间:2020-05-04 16:13:30      阅读:48      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 技术分享图片

 

 https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/er-cha-shu-de-ceng-ci-bian-li-by-leetcode/

/**
 * 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) {
          Queue <TreeNode> queue=new LinkedList<>();//队列,用Queue接口的LinkedList实现,一个队列在一次循环刚开始时,只存储当前这一层的元素。每遍历一个元素,就把该元素子节点入队
        List<List<Integer>> res=new ArrayList<List<Integer>>();//结果
        if(root==null) return res;//根节点为空,直接返回
        int leavel=0;//第几层

        queue.add(root);
        while(!queue.isEmpty())
        {
            res.add(new ArrayList<>());
            int level_length = queue.size();//不能直接用size当成循环条件,随着出列,长度越来越小
            for(int i=0;i<level_length;i++)
            {
                TreeNode cur=queue.remove();//出列
                res.get(leavel).add(cur.val);
                 if(cur.left!=null) queue.add(cur.left);
                if(cur.right!=null) queue.add(cur.right);//左右子节点入列,可以看出,每一次,队列里面包含的都是一行所有的元素
            }
            leavel++;

        }
        return res;
    }
}

  

102. 二叉树的层序遍历

原文:https://www.cnblogs.com/lzh1043060917/p/12826640.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!