• 剑指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

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

    参考链接:

  • 相关阅读:
    2014年7月 记事
    从客户端中检测到有潜在危险的Request.Form值 的解决方法
    jquery parent() parents() closest()区别
    不包含适合于入口点的静态"Main"方法
    JQuery移除事件
    jQ的toggle()方法示例
    codeforces hello2018 D Too Easy Problems
    HDU-6084 寻找母串
    51Nod 1109 01组成N的倍数
    可重排列
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7632001.html
Copyright © 2020-2023  润新知