zoukankan      html  css  js  c++  java
  • 【剑指offer】32-1 从上到下打印二叉树

    32-1 从上到下打印二叉树

    面试题32 - I. 从上到下打印二叉树

    难度中等10

    从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

    例如:

    给定二叉树: [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    返回:

    [3,9,20,15,7]
    

    th:一个队列存储遍历的节点,先存储root结点,从队列中取出来,如果不为null 将左子节点 和右子节点分别存储起来。依次循环遍历。先存储左子节点 在存储有子节点 。层序遍历。

    time:O(n)

    space:O(n)

    //一个队列存储结点,
    //list存储值 
    public int[] levelOrder(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        List<Integer> list = new ArrayList<>();
        queue.add(root);
        while(!queue.isEmpty()){
            int cnt = queue.size();
            while(cnt-- > 0){
                TreeNode t = queue.poll();
                if(t == null){
                    continue;
                }
                list.add(t.val);
                queue.add(t.left);//左子节点
                queue.add(t.right);//右子节点
            }
        }
        int [] ret = new int[list.size()];
        for(int i=0;i<list.size();i++){
            ret[i] = list.get(i);
        }
        return ret;
    }
    
  • 相关阅读:
    favicon.ico请求处理
    Node.js学习(Node.js基础)
    实现主机访问虚拟机网页的方法总结
    有向/无向图中搜环
    后缀自动机
    莫队算法
    A* 算法求第k短路径
    次小生成树算法
    AC自动机详解
    Link-Cut-Tree详解
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860638.html
Copyright © 2011-2022 走看看