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

606. 根据二叉树创建字符串 - 力扣(LeetCode)

可以使用递归方法来构造前序遍历字符串,同时省略不必要的空括号。以下是 Python 代码实现:

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def tree2str(root: TreeNode) -> str:
    if not root:
        return ""
    
    left = f'({tree2str(root.left)})' if root.left or root.right else ''
    right = f'({tree2str(root.right)})' if root.right else ''
    
    return f'{root.val}{left}{right}'

代码解析:

  1. 递归终止条件:如果 root 为空,则返回空字符串 ""
  2. 处理左子树:
    • 只有在左子树存在或右子树存在时才加上 (),避免不必要的括号。
  3. 处理右子树:
    • 只有在右子树存在时才加上 (),避免无意义的括号。
  4. 返回 root.val 以及处理后的左右子树拼接结果。

这个方法确保了只包含必要的括号,满足题目要求的最简化表示。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值