leetcode 606. ツリーに基づいた文字列の作成(python)
1153 ワード
前の順序で遍歴し、ツリーをカッコと整数からなる文字列に変換する必要があります.
空のノードは、空のカッコ「()」のペアで表されます.文字列と元のツリーとの間の1対1のマッピング関係に影響を与えないカッコペアをすべて省略する必要があります.
例1:
例2:
空のノードは、空のカッコ「()」のペアで表されます.文字列と元のツリーとの間の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