LeetCode:606.根据二叉树创建字符串
解题思路:
- 在前序遍历的基础上增加了一些步骤,分3个情况
- 无左右子树
- 无左子树,又右子树
- 有左子树无右子树
- 同时具有左右子树
对于每个情况,只需根据题意再各个地方加上括号即可,这里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.根据二叉树创建字符串相关推荐
- 【浅刷Java数据结构】Leetcode 606 根据二叉树创建字符串
链接: Leetcode 606 根据二叉树创建字符串 整体思路: 题目要求按照前序遍历的方式遍历.(根(左子树)(右子树)) 根为空直接返回. 根不为空时:看左右子树是否空,就可以分类讨论: 左树为 ...
- LeetCode 606. 根据二叉树创建字符串题解
606. 根据二叉树创建字符串题解 题目来源:606. 根据二叉树创建字符串 2022.03.19 每日一题 LeetCode 题解持续更新中Github仓库地址 CSDN博客地址 在开始本题之前,可 ...
- LeetCode 606. 根据二叉树创建字符串(递归)
文章目录 1. 题目 2. 递归解题 1. 题目 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串. 空节点则用一对空括号 "()" 表示.而且你需要省略所 ...
- leetcode 606 .根据二叉树创建字符串
题目链接:leetcode606 题目链接 此题的题目虽然是简单题,但是想要读懂,个人感觉有些难度,虽然是简单题,但是想要读懂还有不小的难度的, 直接说结论,对着结论去读懂题目应该会简单不少. 结论: ...
- 【LeetCode】606.根据二叉树创建字符串
链接: [LeetCode]606.根据二叉树创建字符串 思路 使用二叉树的中序遍历,需要注意的是当左节点为空,右节点不为空的时候要加上(). 代码 class Solution { public:s ...
- LeetCode Algorithm 606. 根据二叉树创建字符串
606. 根据二叉树创建字符串 Ideas 把我珍藏多年的二叉树前序遍历代码模板呈上来: def preorderTraversalLoop(node):if not node:returnstack ...
- LeetCode 每日一题:606. 根据二叉树创建字符串
606. 根据二叉树创建字符串 二叉树的前序遍历,当左子节点或者右节点非空的时候需要添加左子节点的括号,如果右子节点非空才需要添加右子节点的括号 /*** Definition for a binar ...
- 题目:606.根据二叉树创建字符串
题目来源: leetcode题目,网址:606. 根据二叉树创建字符串 - 力扣(LeetCode) 解题思路: 递归遍历二叉树,按要求输出即可. 解题代码: /*** Definition f ...
- 606.根据二叉树创建字符串
题目 606.根据二叉树创建字符串 题目大意 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串. 空节点则用一对空括号 "()" 表示.而且你需要省略所有不 ...
最新文章
- 【微信小程序企业级开发教程】如何搭建服务器(tomcat)后台
- jvm性能调优实战 - 36XX:SoftRefLRUPolicyMSPerMB配置引起的Metaspace频繁FullGC
- 四边形可以分为几类_四边形有几种类型
- matlab simulink 视频,使用 MATLAB 和 Simulink 让控制系统的开发更轻松
- Clion生成动态链接库.dll
- 用python阐释工作量证明(proof of work)
- 在centos7上安装Jenkins
- zip unzip_zip和unzip上的Java要点
- java 使用本机代理_Java与本机代理–他们所做的强大功能
- LeetCode 3:无重复字符的最长子串 思考分析
- 信息学奥赛一本通(1002:输出第二个整数)
- mysql5.7bka_mysql5.7的sql优化
- [BlockChain]比特币交易快速上手(基于测试链)
- 深入探究Java中hashCode()和equals()的关系
- sublime text3 炫酷主题
- http 传输原理及格式
- (转)windows 7兼容软件列表搜集加转帖
- 大白菜装机版一键制作启动u盘教程
- linux安装Oracle11g详细教程(redhat6、Centos7)
- 简单抽奖机系统(中午吃什么?)