LeetCode 655. 输出二叉树(二叉树高度二叉树遍历)

1. 题目

在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则:

  • 行数 m 应当等于给定二叉树的高度。
  • 列数 n 应当总是奇数。
  • 根节点的值(以字符串格式给出)应当放在可放置的第一行正中间。
  • 根节点所在的行与列会将剩余空间划分为两部分(左下部分和右下部分)。
  • 你应该将左子树输出在左下部分,右子树输出在右下部分。
  • 左下和右下部分应当有相同的大小。即使一个子树为空而另一个非空,你不需要为空的子树输出任何东西,但仍需要为另一个子树留出足够的空间。然而,如果两个子树都为空则不需要为它们留出任何空间。
  • 每个未使用的空间应包含一个空的字符串""。
  • 使用相同的规则输出子树。
示例 1:
输入:1/2
输出:
[["", "1", ""],["2", "", ""]]示例 2:
输入:1/ \2   3\4
输出:
[["", "", "", "1", "", "", ""],["", "2", "", "", "", "3", ""],["", "", "4", "", "", "", ""]]示例 3:
输入:1/ \2   5/ 3 / 
4 
输出:
[["",  "",  "", "",  "", "", "", "1", "",  "",  "",  "",  "", "", ""]["",  "",  "", "2", "", "", "", "",  "",  "",  "",  "5", "", "", ""]["",  "3", "", "",  "", "", "", "",  "",  "",  "",  "",  "", "", ""]["4", "",  "", "",  "", "", "", "",  "",  "",  "",  "",  "", "", ""]]
注意: 二叉树的高度在范围 [1, 10] 中。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/print-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先求二叉树高度height
  • 根据高度知道列的宽度width = 2^height - 1
  • 递归在区间中点填入节点的val的string格式
class Solution {
public:vector<vector<string>> printTree(TreeNode* root) {int height = getHeight(root);//求高度int width = (2<<(height-1))-1;//确定宽度vector<vector<string>> ans(height,vector<string> (width,""));dfs(ans,root,0,0,width-1);return ans;}int getHeight(TreeNode* root)//递归求高度{if(root == NULL)return 0;return max(getHeight(root->left),getHeight(root->right))+1;}void dfs(vector<vector<string>> &ans, TreeNode* root, int f, int L, int R){if(root == NULL)return;int mid = ((L+R)>>1);//区间中点ans[f][mid] = to_string(root->val);//f深度dfs(ans,root->left,f+1,L,mid-1);//递归填充左右侧dfs(ans,root->right,f+1,mid+1,R);}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源开放 | 计算机科学示意图问答数据集CSDQA(CCKS2021)

OpenKG地址&#xff1a;http://openkg.cn/dataset/csdqa开源地址&#xff1a;http://zscl.xjtudlc.com:888/CSDQA/开放许可协议&#xff1a;CC BY-SA 4.0 &#xff08;署名相似共享&#xff09;贡献者&#xff1a;西安交通大学(王绍伟、张玲玲、杨祎、胡欣、秦涛、魏笔凡、刘均…

数据驱动精准化营销在大众点评的实践

精准化营销一直以来都是互联网营销业务在细分市场下快速获取用户和提高转化的利器。在移动互联网爆发的今天&#xff0c;数据量呈指数增长&#xff0c;如何在移动和大数据场景下用数据驱动进行精准营销&#xff0c;从而提高营销效能&#xff0c;成为营销业务部门的主要挑战之一…

LeetCode 1104. 二叉树寻路(数学位运算)

1. 题目 在一棵无限的二叉树上&#xff0c;每个节点都有两个子节点&#xff0c;树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示&#xff0c;在奇数行&#xff08;即&#xff0c;第一行、第三行、第五行……&#xff09;中&#xff0c;按从左到右的顺序进行标记&am…

再介绍一篇最新的Contrastive Self-supervised Learning综述论文

文 | 对白源 | 对白的算法屋自监督学习&#xff08;Self-supervised learning&#xff09;最近获得了很多关注&#xff0c;因为其可以避免对数据集进行大量的标签标注。它可以把自己定义的伪标签当作训练的信号&#xff0c;然后把学习到的表示&#xff08;representation&#…

论文浅尝 | 重新审视语言模型与知识库的关系

笔记整理&#xff1a;陈卓&#xff0c;浙江大学在读博士&#xff0c;主要研究方向为低资源学习和知识图谱论文链接&#xff1a;https://arxiv.org/pdf/2106.09231发表会议&#xff1a;ACL 2021动机这篇文章类似于是批判性的文章&#xff0c;反驳的之前EMNLP2019的一篇文章knowl…

Spark在美团的实践

本文已发表在《程序员》杂志2016年4月期。 前言 美团是数据驱动的互联网服务&#xff0c;用户每天在美团上的点击、浏览、下单支付行为都会产生海量的日志&#xff0c;这些日志数据将被汇总处理、分析、挖掘与学习&#xff0c;为美团的各种推荐、搜索系统甚至公司战略目标制定提…

LeetCode 958. 二叉树的完全性检验(层序遍历)

1. 题目 给定一个二叉树&#xff0c;确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下&#xff1a; 若设二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层 (1&#xff5e;h-1) 的结点数都达到最大个数&#xff0c;第 h 层所有的结点都连续集中在…

论文浅尝 | 通过学习中间步骤的监督信号改进多跳知识库问答

笔记整理&#xff1a;陈永锐&#xff0c;东南大学博士论文链接&#xff1a;https://arxiv.org/pdf/2101.03737.pdf概述该论文处理多跳知识库问答&#xff08;KBQA&#xff09;任务&#xff0c;主要关注训练过程在中间步骤缺乏监督信号的挑战。由于这一挑战&#xff0c;多跳 KBQ…

打破情感分类准确率 80 分天花板!更加充分的知识图谱结合范式

文 | SeverusNLP的研究者们一直都在尝试&#xff0c;怎么样让模型像人类一样&#xff0c;学会“知识”。而最直观的想法莫过于将人类已经总结出来供机器解读的“知识体系”&#xff0c;及其嵌入表示作为额外的特征添加到NLP模型之中。至少&#xff0c;从直觉上看&#xff0c;将…

分布式块存储系统Ursa的设计与实现

引言 云硬盘对IaaS云计算平台有至关重要的作用&#xff0c;几乎已成为必备组件&#xff0c;如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性&#xff0c;如更高的数据可靠性和可用性、灵活的数据快照功能、更…

LeetCode 919. 完全二叉树插入器(层序遍历队列)

1. 题目 完全二叉树是每一层&#xff08;除最后一层外&#xff09;都是完全填充&#xff08;即&#xff0c;结点数达到最大&#xff09;的&#xff0c;并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter&#xff0c;它支持以下几种操作…

开源开放 | 中文相对复杂词汇识别数据集RCWI-Dataset(CCKS2021)

OpenKG地址&#xff1a;http://openkg.cn/dataset/rcwi-dataset开放许可协议&#xff1a;CC BY-SA 4.0 &#xff08;署名相似共享&#xff09;贡献者&#xff1a;北京语言大学&#xff08;阙孟溪、张宇飞、于东&#xff09;1. 摘要中文领域的词汇复杂度评估资源较为匮乏&#x…

提升 NLP 实战技能的一点建议

作为最典型的 AI 领域之一&#xff0c;NLP 这些年也是越来越热门&#xff0c;基本上是各大厂必备了。随着 OpenAI 等技术的诞生、迁移学习等技术的成功应用&#xff0c;使得 NLP 技术在搜索、推荐、信息流、互联网金融、社交网络等领域不断发展壮大。与此同时&#xff0c;NLP 工…

深入FFM原理与实践

FM和FFM模型是最近几年提出的模型&#xff0c;凭借其在数据量比较大并且特征稀疏的情况下&#xff0c;仍然能够得到优秀的性能和效果的特性&#xff0c;屡次在各大公司举办的CTR预估比赛中获得不错的战绩。美团技术团队在搭建DSP的过程中&#xff0c;探索并使用了FM和FFM模型进…

LeetCode 993. 二叉树的堂兄弟节点(层序遍历)

文章目录1. 题目2. 解题2.1 层序遍历2.2 递归查找1. 题目 在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个节点深度相同&#xff0c;但父节点不同&#xff0c;则它们是一对堂兄弟节点。 我们给出了具有…

论文浅尝 | IRW:基于知识图谱和关系推理的视觉叙事框架

笔记整理&#xff1a;孙悦&#xff0c;天津大学 链接&#xff1a;https://www.aaai.org/AAAI21Papers/AAAI-3382.XuC.pdf动机视觉叙事是生成一个短篇故事来描述有序图像流的任务。与视觉字幕不同&#xff0c;故事不仅包含事实描述&#xff0c;还包含未出现在图像中的想象概念。…

薅羊毛 Colab使用外部数据的7种方法!

文 | Coggle源 | Coggle数据科学Colab作为非常强大且优惠的计算平台&#xff0c;一直广受大家喜爱。可以随时随地使用&#xff0c;还有免费的GPU可以薅羊毛。那么如何在Colab中使用外部数据集&#xff0c;来完成竞赛呢&#xff0c;本文将给出几种常见的方法。方法1&#xff1a;…

高可用性系统在大众点评的实践与经验

背景 所谓高可用性指的是系统如何保证比较高的服务可用率&#xff0c;在出现故障时如何应对&#xff0c;包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用&#xff0c;并结合了一些自己的经验。需要强调的是&#xff0c…

图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!

文 | ZenMoore编 | 小轶图灵奖大佬 Geoffrey Hinton 的团队和 Google Brain 团队近日发布新工作 Pix2seq&#xff0c;将 CV 经典任务 目标检测 转换为了语言模型的下游任务。这就很有意思了朋友们&#xff01;因为这是一个很一般化的范式&#xff01;也就是说&#xff0c;不光是…

论文浅尝 | 异构图 Transformer

笔记整理&#xff1a;许泽众&#xff0c;浙江大学博士在读论文链接&#xff1a;https://arxiv.org/abs/2003.01332本文主要提出一种处理异构图的方法&#xff0c;所谓异构图&#xff08;Heterogeneous graph&#xff09;是指在一个图中会出现不同类型的边和节点的图。早期对于图…