关于算法:二叉树相关

层级遍历

剑指中的这类型题目的外围代码

while(!queue.isEmpty()){
    int size=queue.size();//这里其实不这么写也行,这么写更加清晰直观地反映出这是遍历着一层的元素
    List<Integer> level=new ArrayList<>();
    for(int i=0;i<size;i++){
        TreeNode node=queue.poll();//queue须要是Queue类型,想一想为什么不能用List
        level.add(node.val);
        if(ndoe.left!=null){
            queue.add(node.left);
        }
        if(node.right!=null){
            queue.add(node.right);
        }
    }
    res.add(level); //这里res是内部定义的变量
}

值得一提的是,如果返回的int[]类型,那么就能够应用随同类
Arrays.toArray(new int[list.size()]);

子树

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理