leetcode 606. ツリーに基づいた文字列の作成(python)

1153 ワード

前の順序で遍歴し、ツリーをカッコと整数からなる文字列に変換する必要があります.
空のノードは、空のカッコ「()」のペアで表されます.文字列と元のツリーとの間の1対1のマッピング関係に影響を与えないカッコペアをすべて省略する必要があります.
例1:
  :    : [1,2,3,4]
       1
     /   \
    2     3
   /    
  4     

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

  :     “1(2(4)())(3())”,
                ,
   “1(2(4))(3)”。

例2:
  :    : [1,2,3,null,4]
       1
     /   \
    2     3
     \  
      4 

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

  :         ,
                                。
# 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):
    def tree2str(self, t):
        """
        :type t: TreeNode
        :rtype: str
        """
        if not t:
            return ""
        res = ""
        left = self.tree2str(t.left)
        right = self.tree2str(t.right)
        if left or right:
            res += "(%s)" % left
        if right:
            res += "(%s)" % right
        return str(t.val) + res