你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
res = ''
def tree2str(self, t):
"""
:type t: TreeNode
:rtype: str
"""
# 左子树为空,右子树非空时的空括号对是有效的
# 递归
def explore(node):
if node:
self.res += '('
self.res += str(node.val)
if not node.left and node.right:
self.res += '()'
explore(node.left)
explore(node.right)
self.res += ')'
explore(t)
return self.res[1:-1]