1. public class TreeNode {
  2. int val;
  3. TreeNode left;
  4. TreeNode right;
  5. TreeNode(int x) {
  6. val = x;
  7. }
  8. }
  1. import java.util.LinkedList;
  2. import java.util.Queue;
  3. public class Wrapper {
  4. public static String treeNodeToString(TreeNode root) {
  5. if (root == null) {
  6. return "[]";
  7. }
  8. String output = "";
  9. Queue<TreeNode> nodeQueue = new LinkedList<>();
  10. nodeQueue.add(root);
  11. while (!nodeQueue.isEmpty()) {
  12. TreeNode node = nodeQueue.remove();
  13. if (node == null) {
  14. output += "null, ";
  15. continue;
  16. }
  17. output += String.valueOf(node.val) + ", ";
  18. nodeQueue.add(node.left);
  19. nodeQueue.add(node.right);
  20. }
  21. return "[" + output.substring(0, output.length() - 2) + "]";
  22. }
  23. public static TreeNode stringToTreeNode(String input) {
  24. input = input.trim();
  25. input = input.substring(1, input.length() - 1);
  26. if (input.length() == 0) {
  27. return null;
  28. }
  29. String[] parts = input.split(",");
  30. String item = parts[0];
  31. TreeNode root = new TreeNode(Integer.parseInt(item));
  32. Queue<TreeNode> nodeQueue = new LinkedList<>();
  33. nodeQueue.add(root);
  34. int index = 1;
  35. while (!nodeQueue.isEmpty()) {
  36. TreeNode node = nodeQueue.remove();
  37. if (index == parts.length) {
  38. break;
  39. }
  40. item = parts[index++];
  41. item = item.trim();
  42. if (!item.equals("null")) {
  43. int leftNumber = Integer.parseInt(item);
  44. node.left = new TreeNode(leftNumber);
  45. nodeQueue.add(node.left);
  46. }
  47. if (index == parts.length) {
  48. break;
  49. }
  50. item = parts[index++];
  51. item = item.trim();
  52. if (!item.equals("null")) {
  53. int rightNumber = Integer.parseInt(item);
  54. node.right = new TreeNode(rightNumber);
  55. nodeQueue.add(node.right);
  56. }
  57. }
  58. return root;
  59. }
  60. public static void prettyPrintTree( TreeNode node,
  61. String prefix,
  62. boolean isLeft) {
  63. if (node == null) {
  64. System.out.println("Empty tree");
  65. return;
  66. }
  67. if (node.right != null) {
  68. prettyPrintTree(node.right, prefix + (isLeft ? "│ " : " "),
  69. false);
  70. }
  71. System.out.println(prefix + (isLeft ? "└── " : "┌── ") + node.val);
  72. if (node.left != null) {
  73. prettyPrintTree(node.left, prefix + (isLeft ? " " : "│ "), true);
  74. }
  75. }
  76. public static void prettyPrintTree(TreeNode node) {
  77. prettyPrintTree(node, "", true);
  78. }
  79. }
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class MainClass {
  5. public static void main(String[] args) throws IOException {
  6. BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  7. String line;
  8. while ((line = in.readLine()) != null) {
  9. TreeNode root = Wrapper.stringToTreeNode(line);
  10. Wrapper.prettyPrintTree(root);
  11. }
  12. }
  13. }

LeetCode二叉树Java模板的更多相关文章

  1. LeetCode刷题模板(1):《我要打10个》之二分法

    Author       :  叨陪鲤 Email         : vip_13031075266@163.com Date          : 2021.01.23 Copyright : 未 ...

  2. *关于httl开源Java模板的使用心得

    1.简介 HTTL (Hyper-Text Template Language) 是一个高性能的开源JAVA模板引擎, 适用于动态HTML页面输出, 可替代JSP页面, 指令和Velocity相似. ...

  3. jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性

    新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...

  4. 二叉树JAVA实现

    为了克服对树结构编程的畏惧感和神秘感,下定决心将二叉树的大部分操作实现一遍,并希望能够掌握二叉树编程的一些常用技术和技巧.关于编程实现中的心得和总结,敬请期待!~ [1]  数据结构和表示: 二叉树的 ...

  5. Java 模板引擎 jetbrick-template

    jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 ...

  6. Java模板引擎 HTTL

    新一代java模板引擎典范 Beetl http://www.oschina.net/p/httl HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引 ...

  7. httl开源JAVA模板引擎,动态HTML页面输出

    HTTL(Hyper-Text Template Language)是一个适用于HTML输出的开源JAVA模板引擎,适用于动态HTML页面输出,可用于替代JSP页面,它的指令类似于Velocity. ...

  8. springboot:Java模板引擎Thymeleaf介绍

    Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎.类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用 ...

  9. Thymeleaf(Java模板引擎)

    一.概念 1.Thymeleaf是Web和独立环境的开源的Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本:2.Thymeleaf可以在Web(基于Servlet)和 ...

随机推荐

  1. 小胖的奇偶(Viojs1112)题解

    原题: 题目描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1 还是偶数个1.xuzheny ...

  2. 洛谷p2672推销员题解

    日常扯废话: 话说题解里的思路都写得真的是很奈斯啊 但是 代码看不懂确实让人头疼(可能是我太弱了) 就像题解里的第一篇题解代码简洁但是属实看不明白 趁着学姐刚给我讲了知识还热乎赶紧给泥萌说说哈 正文: ...

  3. centos7 出现“FirewallD is not running”

    原因:没有开启防火墙 #提示没有开启防火墙服务,–permanent #永久生效,没有此参数重启后失效 [root@uJZ ~]# firewall-cmd --permanent --zone=/t ...

  4. [技术博客] rails控制台调试路由

    目录 rails console 获得路由 app.xxx_path 发送请求 获得响应 作者:庄廓然 rails console 在项目目录下执行rails console test 可以进入测试模 ...

  5. Shell命令行提示定制

    /******************************************************************************* * Shell命令行提示定制 * 说明 ...

  6. 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密

    使用NPOI.dll组件来导出Excel文件,并设置样式,Nuget引用即可. packages\NPOI.2.1.3.1\lib\net20\NPOI.dll #region Excel prote ...

  7. Scrapy之Spider

    Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及 ...

  8. 深入理解C++中的mutable,using,decltype等关键字

    深入理解C++中的mutable关键字 mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设 ...

  9. PMP 第12~13章错题总结

    1.合同解释应该遵循几个主要原则: 1)主导语言原则 2)适用法律原则 3)整体解释原则 4)公平诚信原则2.合同收尾包括的工作: 1)产品核实 2)可交付成果验收 3)财务结算 4)退还保证金或担保 ...

  10. iOS开发需要哪些设备

    ios开发硬件配置环境 工具:使用到 Xcode 和 iOS SDK(Apple 提供的开发工具). 硬件配置: 首先有一台Mac电脑,然后有一个iDevice——iPhone.iPad.iPod T ...