力扣(leetcode)第606题根据二叉树创建字符串(Python)

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

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

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

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

示例 1:

输入:root = 1,2,3,4

输出:"1(2(4))(3)"

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

示例 2:

输入:root = 1,2,3,null,4

输出:"1(2()(4))(3)"

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

提示:

树中节点的数目范围是 1, 10^4^

-1000 <= Node.val <= 1000

解答

python 复制代码
# 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:
        if not root:
            return ''
        res = str(root.val)
        if not root.left and not root.right:
            return res
        left_res = self.tree2str(root.left)
        right_res = self.tree2str(root.right)

        res += '('+left_res+')'
        if right_res:
            res+='('+right_res+')'
        return res

最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!
MySQL数据库万字保姆级教程

相关推荐
额鹅恶饿呃3 小时前
C语言中的数据结构和变量
c语言·数据结构·算法
用户8356290780513 小时前
使用 Python 自动化 Excel 公式和函数:完整指南
后端·python
敲代码的嘎仔4 小时前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
江华森4 小时前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python
杜子不疼.4 小时前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
VIP_CQCRE5 小时前
用 Ace Data Cloud 快速接入 OpenAI Chat Completions:对话、流式、多轮和多模态一篇打通
python·ai·openai·api·教程
运行时记录5 小时前
prompt-optimizer skill
算法
万法若空5 小时前
【数据结构-哈希表】哈希表原理
数据结构·算法·散列表
退休倒计时5 小时前
【每日一题】LeetCode 437. 路径总和 III TypeScript
算法·leetcode·typescript
老迟到的茉莉5 小时前
Hermes 是谁?跟 Claude Code 差在哪
开发语言·python