题目描述:用先序遍历的方式把二叉树转换成字符串,其中结点用括号分割,具体示例见
- 思路:
- 先序遍历,先把根结点的值转化成字符串,然后递归的把左右子树的值转化成字符串
- 把1中的根结点和左右子结点的字符串连接起来就是结果,其中需要注意:
- 如果右子树存在值,左子树无论有没有值,都需要用()括起来
- 如果右子树不存在值,左子树只有在存在值的时候才括起来
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def tree2str(self, t): """ :type t: TreeNode :rtype: str """ if not t: return '' root = str(t.val) left = self.tree2str(t.left) right = self.tree2str(t.right) if right: return root + '(' + left + ')(' + right + ')' else: if left: return root + '(' + left + ')' else: return root