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}'
代码解析:
- 递归终止条件:如果
root为空,则返回空字符串""。 - 处理左子树:
- 只有在左子树存在或右子树存在时才加上
(),避免不必要的括号。
- 只有在左子树存在或右子树存在时才加上
- 处理右子树:
- 只有在右子树存在时才加上
(),避免无意义的括号。
- 只有在右子树存在时才加上
- 返回
root.val以及处理后的左右子树拼接结果。
这个方法确保了只包含必要的括号,满足题目要求的最简化表示。
531

被折叠的 条评论
为什么被折叠?



