intellij idea安装 新闻api Hadoop iic centos7 html 海思 keras checkbox matlab向上取整 transactions x86 mui bootstrap框架 php抽奖源码 css获取最后一个元素 matlab向量的模 css选择器有几种 java 大文件上传 后台管理网站模板 pythonassert函数 python命令行参数 python创建文件 java正则表达式 java框架 java如何连接mysql java实例变量 java语言编程 java特性 linux系统教程 怎么装linux系统 python网站开发实例 谷歌地球打不开 linux命令详解词典 ipad锁屏 考试练习系统 maya2008 cad视口旋转 手工画像 jquery下载
当前位置: 首页 > 学习教程  > 编程语言

剑指 Offer 32 - I. 从上到下打印二叉树

2020/7/24 10:30:27 文章标签:

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

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

    3
   / \
  9  20
    /  \
   15   7
返回:

[3,9,20,15,7]

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int[] levelOrder(TreeNode root) {
        //用队列保存根节点,用int[]记录返回的数组
        if(root == null) return new int[0];
        ArrayList<Integer> arr = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while(!queue.isEmpty()) {
            //根节点
            TreeNode r = queue.poll();
            arr.add(r.val);
            //左子树
            if(r.left != null) queue.add(r.left);
            //右子树
             if(r.right != null) queue.add(r.right);
        }
        int[] res = new int[arr.size()];
        for(int i=0; i<arr.size();i++) {
            res[i] = arr.get(i);
        }
        return res;
    }
}

 


本文链接: http://www.dtmao.cc/news_show_50291.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?