当前位置: 首页 > news >正文

根据二叉树创建字符串--力扣

在这里插入图片描述

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻强烈推荐优质专栏: 🍔🍟🌯C++的世界(持续更新中)
🐻推荐专栏1: 🍔🍟🌯C语言初阶
🐻推荐专栏2: 🍔🍟🌯C语言进阶
🔑个人信条: 🌵知行合一
🍉本篇简介:>:记录力扣题 根据二叉树创建字符串

目录

    • 题目介绍:
    • 解题思路:
    • 代码实现:

题目名称: 根据二叉树创建字符串
题目链接:传送门
题目难度:简单

题目介绍:

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。

空节点使用一对空括号对 “()” 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。

在这里插入图片描述

输入:root = [1,2,3,4]
输出:“1(2(4))(3)”

解释:初步转化后得到 “1(2(4)())(3()())” ,但省略所有不必要的空括号对后,字符串应该是"1(2(4))(3)" 。

在这里插入图片描述

输入:root = [1,2,3,null,4]
输出:“1(2()(4))(3)”

解释:和第一个示例类似,但是无法省略第一个空括号对,否则会破坏输入与输出一一映射的关系。

解题思路:

  1. 为了方便前序遍历的递归,我们创建一个子函数preorder.
  2. 二叉树的结点中,val的类型是int型,所以我们在将 val插入进str时,需要将数字转化为字符型.
  3. 确定打印括号:
    在这里插入图片描述

在这里插入图片描述
综上,
打印左子树括号:
(1) 左存在, 或者 左不存在,但是右存在 或者 左右存在

打印右子树括号
(2)右存在就打印,不存在,不打印.

补充知识:
C++中的to_string函数是一个标准库函数,它可将数值、字符、布尔等转换为对应的字符串类型,并返回这个字符串值。

前序遍历:
按照 左子树 右子树的顺序访问.

代码实现:

class Solution {
public:string tree2str(TreeNode* root) {string str;preorder(root,str);return str;}void preorder(TreeNode* root,string& str)	//前序遍历{if(root==nullptr)   return ;//先访问根string num=to_string(root->val);		//注意转化为字符型str+=num;	//其次访问左树//左树,左右一个存在就打印if(root->left||root->right)str+='(';preorder(root->left,str);if(root->left||root->right)str+=')';//最后访问右树//右存在才打印括号,即右不存在,则不打印if(root->right)str+='(';preorder(root->right,str);if(root->right)str+=')';}
};
http://www.lryc.cn/news/187207.html

相关文章:

  • 代码事件派发机制(观察者模式)
  • 微服务技术栈-Nacos配置管理和Feign远程调用
  • 操作系统 OS
  • 基于ffmpeg给视频添加时间字幕
  • 爬虫基础知识点快速入门
  • 解释器模式 行为型模式之五
  • 2023年中国汽车座舱行业发展现状及趋势分析:高级人机交互(HMI)系统将逐步提升[图]
  • 常见的通用型项目管理软件推荐
  • 手机总是提醒系统更新,到底要不要更新呢?
  • 什么是API
  • RedissonClient 分布式锁 处理并发访问共享资源
  • Hadoop-2.5.2平台环境搭建遇到的问题
  • 基于WTMM算法的图像多重分形谱计算matlab仿真
  • VR全景展示带来旅游新体验,助力旅游业发展!
  • Xcode 15 编译出错问题解决
  • 基于指数趋近律的机器人滑模轨迹跟踪控制算法及MATLAB仿真
  • 华为云API自然语言处理的魅力—AI情感分析、文本分析
  • 微擎小程序获取不到头像和昵称解决方案
  • Qt 对界面类重命名的步骤
  • 使用docker搭建nacos单机、集群 + mysql
  • FreeRTOS自我救赎2之基本工程建立
  • 【C++设计模式之解释器模式:行为型】分析及示例
  • 35 WEB漏洞-逻辑越权之找回机制及接口安全
  • 黑豹程序员-架构师学习路线图-百科:JSON替代XML
  • 考研人考研魂——英语单词篇(20231009)
  • 【数据结构】HashSet的底层数据结构
  • 数据结构与算法(七)--使用链表实现栈
  • 分布式事务详解
  • 车载通信架构 —— DDS协议介绍
  • nginx根据不同的客户端设备进行转发请求——筑梦之路