zoukankan      html  css  js  c++  java
  • 剑指offer二十二之从上往下打印二叉树

    一、题目

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

    二、思路

         二叉树的层次遍历,可以借助队列实现。具体思路详见注释。

    三、代码

    import java.util.ArrayList;
    import java.util.LinkedList;
    /**
    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) {
              ArrayList<Integer> arrayList=new ArrayList<Integer>();
            
           
            //新建一个队列,LinkedList实现了Quene接口,可以直接当作队列来用
            LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
    
            TreeNode current;  //当前节点
            if(root!=null){
            queue.offer(root);//根节点入队列
            }
            while (!queue.isEmpty()) {
                current = queue.poll();  //取出队列的头节点
                arrayList.add(current.val);//保存队列的头节点的值
                if (current.left != null) {
                    queue.offer(current.left);  //如果当前节点的左节点不为空,则左节点入队列
                }
                if (current.right != null) {
                    queue.offer(current.right); //如果当前节点的右节点不为空,则右节点入队列
                }
            }
    
            return arrayList;
            
        }
    }
    View Code

    ---------------------------------------------------------

    参考链接:

  • 相关阅读:
    eas之动态刷新Table
    eas之导入导出
    eas之事件
    eas之获得任何一个KDTable的选中行
    eas之创建一个UI界面并对其操作
    eas之style接口
    eas之指定虚模式
    eas之数据融合
    eas之kdtable格式化
    eas之视图冻结与解冻
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7632001.html
Copyright © 2011-2022 走看看