你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。
空節點則用一對空括號 「()」 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。
輸入: 二叉樹:[1
,2,3
,4]1
/ \
23/4
輸出:"1(2(4))(3)"
解釋: 原本將是「1(2
(4)(
))(3
())」,在你省略所有不必要的空括號對之後,它將是「1(2
(4))
(3)」。輸入: 二叉樹:[1
,2,3
,null,4]
1/ \
23 \
4 輸出:"1(2()(4))(3)"
解釋: 和第乙個示例相似,除了我們不能省略第乙個對括號來中斷輸入和輸出之間的一對一對映關係。
二叉樹天然適合遞迴。
class
solution
:def
tree2str
(self, t: treenode)
->
str:
ifnot t:
return
''if
not(t.left or t.right)
:return
str(t.val)
l=self.tree2str(t.left)
#if t.right else ''
r='('+
str(self.tree2str(t.right))+
')'if t.right else
''return
'%d(%s)%s'
%(t.val,l,r)
!這裡只著重一點,就是不存在右節點,可以直接省略'()'
,但是左節點為空,不能省略括號,需要用來儲存對映關係。 Leetcode 606 根據二叉樹建立字串
一定要理清邏輯,我在這題上修修補補,打補丁打了半天,最後才發現,如果一開始有清晰的邏輯的話,那麼 會非常簡單的。class solution def tree2str self,t if t is none return s str t.val a self.tree2str t.left b se...
leetcode 606 根據二叉樹建立字串
題目描述 你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1,2,3,4 1 2 3 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略...
leetcode 606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1,2,3,4 1 2 3 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要...