解题思路:

  • 在前序遍历的基础上增加了一些步骤,分3个情况
  1. 无左右子树
  2. 无左子树,又右子树
  3. 有左子树无右子树
  4. 同时具有左右子树

对于每个情况,只需根据题意再各个地方加上括号即可,这里2、4为一种情况,同样处理即可,3得情况可以无需考虑右子树的情况。


代码:

C++:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:void prohelperstr(const TreeNode* root, string &res) {if (root == nullptr) {return;}//无左子树无右子树if (root->left==nullptr && root->right== nullptr) {res += to_string(root->val);return;}//有左子树无右子树,右子树的括号就不需要加上了if (root->left!=nullptr && root->right==nullptr) {res += to_string(root->val);res.push_back('(');prohelperstr(root->left, res);res.push_back(')');return;}// 正常的左右子树都有的情况res += to_string(root->val);res.push_back('(');prohelperstr(root->left, res);res.push_back(')');res.push_back('(');prohelperstr(root->right, res);res.push_back(')');}string tree2str(TreeNode* root) {string ans;     prohelperstr(root, ans);return ans;}
};

LeetCode:606.根据二叉树创建字符串相关推荐

  1. 【浅刷Java数据结构】Leetcode 606 根据二叉树创建字符串

    链接: Leetcode 606 根据二叉树创建字符串 整体思路: 题目要求按照前序遍历的方式遍历.(根(左子树)(右子树)) 根为空直接返回. 根不为空时:看左右子树是否空,就可以分类讨论: 左树为 ...

  2. LeetCode 606. 根据二叉树创建字符串题解

    606. 根据二叉树创建字符串题解 题目来源:606. 根据二叉树创建字符串 2022.03.19 每日一题 LeetCode 题解持续更新中Github仓库地址 CSDN博客地址 在开始本题之前,可 ...

  3. LeetCode 606. 根据二叉树创建字符串(递归)

    文章目录 1. 题目 2. 递归解题 1. 题目 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串. 空节点则用一对空括号 "()" 表示.而且你需要省略所 ...

  4. leetcode 606 .根据二叉树创建字符串

    题目链接:leetcode606 题目链接 此题的题目虽然是简单题,但是想要读懂,个人感觉有些难度,虽然是简单题,但是想要读懂还有不小的难度的, 直接说结论,对着结论去读懂题目应该会简单不少. 结论: ...

  5. 【LeetCode】606.根据二叉树创建字符串

    链接: [LeetCode]606.根据二叉树创建字符串 思路 使用二叉树的中序遍历,需要注意的是当左节点为空,右节点不为空的时候要加上(). 代码 class Solution { public:s ...

  6. LeetCode Algorithm 606. 根据二叉树创建字符串

    606. 根据二叉树创建字符串 Ideas 把我珍藏多年的二叉树前序遍历代码模板呈上来: def preorderTraversalLoop(node):if not node:returnstack ...

  7. LeetCode 每日一题:606. 根据二叉树创建字符串

    606. 根据二叉树创建字符串 二叉树的前序遍历,当左子节点或者右节点非空的时候需要添加左子节点的括号,如果右子节点非空才需要添加右子节点的括号 /*** Definition for a binar ...

  8. 题目:606.根据二叉树创建字符串

    ​ ​题目来源: leetcode题目,网址:606. 根据二叉树创建字符串 - 力扣(LeetCode) 解题思路: 递归遍历二叉树,按要求输出即可. 解题代码: /*** Definition f ...

  9. 606.根据二叉树创建字符串

    题目 606.根据二叉树创建字符串 题目大意 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串. 空节点则用一对空括号 "()" 表示.而且你需要省略所有不 ...

最新文章

  1. 【微信小程序企业级开发教程】如何搭建服务器(tomcat)后台
  2. jvm性能调优实战 - 36XX:SoftRefLRUPolicyMSPerMB配置引起的Metaspace频繁FullGC
  3. 四边形可以分为几类_四边形有几种类型
  4. matlab simulink 视频,使用 MATLAB 和 Simulink 让控制系统的开发更轻松
  5. Clion生成动态链接库.dll
  6. 用python阐释工作量证明(proof of work)
  7. 在centos7上安装Jenkins
  8. zip unzip_zip和unzip上的Java要点
  9. java 使用本机代理_Java与本机代理–他们所做的强大功能
  10. LeetCode 3:无重复字符的最长子串 思考分析
  11. 信息学奥赛一本通(1002:输出第二个整数)
  12. mysql5.7bka_mysql5.7的sql优化
  13. [BlockChain]比特币交易快速上手(基于测试链)
  14. 深入探究Java中hashCode()和equals()的关系
  15. sublime text3 炫酷主题
  16. http 传输原理及格式
  17. (转)windows 7兼容软件列表搜集加转帖
  18. 大白菜装机版一键制作启动u盘教程
  19. linux安装Oracle11g详细教程(redhat6、Centos7)
  20. 简单抽奖机系统(中午吃什么?)

热门文章

  1. 高校教材管理系统mysql_高校教材管理系统的设计与实现
  2. 撸一撸简单的操作系统知识
  3. 基于Matlab Robotics Toolbox的Dobot机械臂运动规划(3)
  4. GithubPages教程 在GithubPages上搭建个人主页
  5. mysql报08s01的错误_MYSQL报08S01的异常
  6. 牛客网wannafly挑战赛13-E(线段树)
  7. 教你如何完全解析Kotlin中的类型系统
  8. PHP语言之华为应用内支付IAP验签
  9. 微服务架构及解决方案
  10. 厦门宝讯网捷:拼多多一件代发怎么做?