想法:
首先,preorder是指先拜访root,再拜访左右子节点。

我们可以建立一个list储存所有的字符串,最后用一个join的方法结合起来,会比直接做string concatenation快很多。

代码:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def tree2str(self, root: Optional[TreeNode]) -> str:res = []def preorder(root):if not root: return #在list中加入“(”,再加入当前节点的value。res.append("(")res.append(str(root.val))#根据Example 2,当没有左节点而有右节点时,需要加入一个“()”。if not root.left and root.right:res.append("()")#先遍历左子树再遍历右子树preorder(root.left)preorder(root.right)#在list中加入“)”。res.append(")")preorder(root)#注意最外层root的位置没有括号。return "".join(res)[1:-1]

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.根据二叉树创建字符串

    解题思路: 在前序遍历的基础上增加了一些步骤,分3个情况 无左右子树 无左子树,又右子树 有左子树无右子树 同时具有左右子树 对于每个情况,只需根据题意再各个地方加上括号即可,这里2.4为一种情况,同 ...

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

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

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

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

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

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

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

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

最新文章

  1. nc 传输文件和目录
  2. Python深度学习之搭建小型卷积神经网络(Kaggle网站Dogs-vs-Cats数据集)
  3. nginx负载均衡 页面缓存
  4. [C#7] 1.Tuples(元组)
  5. CentOS7搭建NTP服务器
  6. springMVC接受参数总结
  7. python 函数图_如何查看Python函数调用图 Ubuntu
  8. resiprocate 之repro注册
  9. 人性的弱点【我要喜欢你】
  10. 什么是SYN包 以及SYN攻击原理
  11. Beyond Compare 4 “授权秘钥已被吊销“ 的解决办法
  12. 真正卓越的领导者,都有这6大共性
  13. 树莓派各类显示屏体验
  14. 什么运动耳机好用,六款运动耳机值得推荐
  15. 预测移动用户人口属性的Kaggle竞赛作品解析
  16. TensorFlow2.0 Guide官方教程 学习笔记17 -‘Using the SavedModel format‘
  17. 51单片机红外控制步进电机
  18. 盛金公式解一元三次方程_盛金公式解一元三次方程
  19. HEX文件格式解析(转)
  20. python棋盘放麦粒_棋盘上的麦粒有什么问题?

热门文章

  1. python----下载安装
  2. MySql数据库中,表字段新增,修改,删除
  3. 华为开发人员与测试人员
  4. Mysql和JDBC
  5. 软件测试工程师必看:如何使用JMeter中的正则表达式?
  6. JavaScript的起源故事
  7. 线性代数笔记3 - 向量组的线性相关性
  8. 浅谈 Java 中的枚举
  9. 用Multisim对振幅调制器进行仿真
  10. 德鲁周记13--最小二乘、RANSAC与霍夫变换的区别