zoukankan      html  css  js  c++  java
  • 从上到下打印二叉树(剑指offer-22)

    题目描述

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    题目解析

    使用队列来进行层次遍历,本质上就是宽搜。

    题目解答

    import java.util.*;
    /**
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    public class Solution {
        public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
            Queue<TreeNode> queue  = new LinkedList<>();//利用队列先进先出的特点,放入遍历二叉树的节点,维护宽搜。
            ArrayList<Integer> result = new ArrayList<>();
            if(root!=null) 
                queue.add(root);
            //开始迭代
            while(!queue.isEmpty()){
                TreeNode node = queue.peek();
                result.add(node.val);//将当前节点值放入结果中
                if(node.left!=null) queue.add(node.left);
                if(node.right!=null) queue.add(node.right);
                
                queue.poll();//当前节点值已经放入结果中,删除该节点
            }
            
            return result;
        }
    }
    
  • 相关阅读:
    GitLab-添加SSH Key亲历教程
    java-数组Array的应用总结
    Java-方法的重载和重写
    JSON-相关的工具收藏分享
    java-无重复的排列组合小技能
    Charles安装与使用
    深拷贝浅拷贝
    文件操作
    列表生成式
    非空即真,非零即真
  • 原文地址:https://www.cnblogs.com/yzhengy/p/13229000.html
Copyright © 2011-2022 走看看