1  public List<List<String>> printTree(TreeNode root) {
2 ArrayList<List<String>> al = new ArrayList<>();
3 if (root == null) return al;
4 if (root.left == null && root.right == null) {
5 al.add(new ArrayList<>());
6 al.get(0).add(String.valueOf(root.val));
7 return al;
8 }
9
10 int high = dep(root, 1);
11 String[][] ans = new String[(int) Math.pow(2, high)][high + 1];
12 add(root, (int) Math.pow(2, high - 1), 1, (int) Math.pow(2, high - 2), ans);
13 for (int i = 1; i <= high; i++) {
14 al.add(new ArrayList<>());
15 for (int j = 1; j < ans.length; j++)
16 al.get(i - 1).add(ans[j][i] == null ? "" : ans[j][i]);
17 }
18 return al;
19 }
20
21 public void add(TreeNode cur, int x, int y, int diff, String[][] ans) {
22 if (cur == null) return;
23 ans[x][y] = cur.val + "";
24 add(cur.left, x - diff, y + 1, diff / 2, ans);
25 add(cur.right, x + diff, y + 1, diff / 2, ans);
26 }
27
28
29 public int dep(TreeNode cur, int dep) {
30 if (cur == null) return dep - 1;
31 return Math.max(dep(cur.left, dep + 1), dep(cur.right, dep + 1));
32 }

leetcode 655. 输出二叉树 【时间击败100.00%】 【内存击败96.49%】的更多相关文章

  1. Java实现 LeetCode 655 输出二叉树(DFS+二分)

    655. 输出二叉树 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度. 列数 n 应当总是奇数. 根节点的值(以字符串格式给出)应当放在可放置的第一 ...

  2. Leetcode 655.输出二叉树

    输出二叉树 在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则: 行数 m 应当等于给定二叉树的高度. 列数 n 应当总是奇数. 根节点的值(以字符串格式给出)应当放在可放置的第一行正中间. ...

  3. C#版(击败100.00%的提交) - Leetcode 151. 翻转字符串里的单词 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  4. C#版(击败100.00%的提交) - Leetcode 744. 寻找比目标字母大的最小字母 - 题解

    C#版 - Leetcode 744. 寻找比目标字母大的最小字母 - 题解 744.Find Smallest Letter Greater Than Target 在线提交: https://le ...

  5. C#版[击败100.00%的提交] - Leetcode 6. Z字形变换 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  6. C#版(击败100.00%的提交) - Leetcode 372. 超级次方 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  7. [leetcode]1109. 航班预订统计(击败100%用户算法-差分数组的详解)

    执行用时2ms,击败100%用户 内存消耗52.1MB,击败91%用户 这也是我第一次用差分数组,之前从来没有碰到过,利用差分数组就是利用了差分数组在某一区间内同时加减情况,只会改变最左边和最右边+1 ...

  8. 力扣(LeetCode)单值二叉树 个人题解

    如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树. 只有给定的树是单值二叉树时,才返回 true:否则返回 false. 示例 1: 输入:[1,1,1,1,1,null,1] 输出:tr ...

  9. [Swift]LeetCode655. 输出二叉树 | Print Binary Tree

    Print a binary tree in an m*n 2D string array following these rules: The row number m should be equa ...

  10. LeetCode:翻转二叉树【226】

    LeetCode:翻转二叉树[226] 题目描述 翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 题目 ...

随机推荐

  1. MAC怎么获取文件路径 MAC获取文件路径的四种方法

    MAC怎么获取文件路径介绍 方法一:最简单的方法  右键文件或者文件夹,选择显示简介 2在弹出来的窗口中找到位置,即为路径,在mac 10.10之前的系统是正常的路径,10.10开始是小箭头代替/显示 ...

  2. Mac OS X 下安装Tableau Desktop Pro for Mac 10.2.0

    ​ 安装步骤 1.断网安装tableau 2.双击Tableau Desktop.pkg ​编辑 3.安装后到应用程序里把tableau这个单独文件从tableau文件夹里直接放到应用程序根目录 4. ...

  3. express的使用:web开发(四)

    1.开发模式 1.服务端渲染 2.前后端分离 2.身份认证 1.服务端渲染推荐使用session认证机制 2.前端后端分离建议使用JWT认证机制 3.http协议的无状态性 4.cookie特性 1. ...

  4. 070_GET https://login.salesforce.com/17181/logo180.png 404 (Not Found)

    这个问题怎么解答? Google了一下:https://success.salesforce.com/answers?id=90630000000D6qzAAC 谷歌应用商店安装了一个 Resourc ...

  5. 【傻瓜式教学】apache2 管理员用户运行(php无权限问题

    apache2 管理员用户运行(php无权限问题 代码亲身试过,绝无问题 apache版本: Server version: Apache/2.4.38 (Debian) Server built: ...

  6. 一个好的程序应该像AK47

    一个好的程序应该像AK47: 容易上手(配置.设置.功能描述清晰),结构简单(低耦合,模块化,单元化),拆装方便(安装部署.卸载.迁移很少有障碍),从不卡壳(已知业务冲突解决),故障率低(未知或可能出 ...

  7. 【python】pip的问题

    在更新pip的时候因为安装pip需要管理员权限,但是呢,又把pip给uninstall了 所以结果就是没有pip这个模块了 https://stackoverflow.com/questions/18 ...

  8. 004. html篇之《标签分类和嵌套规则》

    html篇之<标签分类和嵌套规则> 一.常用标签 (1) <div></div> 一个区块容器标记,可以包含图片.表格.段落等各种html元素 (2) <sp ...

  9. JSR 133

      JSR 133是Java语言规范的一个JSR(Java Specification Request),全称为Java Memory Model and Thread Specification R ...

  10. mariadb 集群 重启的几种情形

    最近项目中遇到过一次mariadb集群中三台节点有两台挂掉的情况.总结了一下mariadb集群可能遇到的几种情况需要重启. 环境说明: mariadb集群ip: 10.0.101.51 10.0.10 ...