你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。
空節點則用一對空括號 「()」 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。
示例 1:
輸入: 二叉樹:[1
,2,3
,4]1
/ \
23/4
輸出:"1(2(4))(3)"
解釋: 原本將是「1(2
(4)(
))(3
())」,在你省略所有不必要的空括號對之後,
它將是「1(2
(4))
(3)」。示例 2
:輸入: 二叉樹:[1
,2,3
,null,4]
1/ \
23 \
4 輸出:"1(2()(4))(3)"
解釋: 和第乙個示例相似,
除了我們不能省略第乙個對括號來中斷輸入和輸出之間的一對一對映關係。
根據題目來看非常簡單,就是除了根節點以外,每乙個節點都要用括號包起來,並且節點的子節點要在父節點的括號內
.另外就是如果乙個null節點有意義,那麼不能將這個括號刪除.什麼叫有意義呢,就是這個null節點是父節點的左孩子,並且父節點的右孩子還不為空
.此時的空括號可以用於標識節點的排列順序
public string tree2str
(treenode t)
(t, result)
;return result.
tostring()
;}private
void
(treenode t, stringbuilder result)
result.
(t.val);if
(t.left != null)
else
if(t.right != null)
if(t.right != null)
}
606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1,2,3,4 1 2 3 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要...
606 根據二叉樹建立字串
你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。空節點則用一對空括號 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。示例 1 輸入 二叉樹 1 2,3 4 1 23 4 輸出 1 2 4 3 解釋 原本將是 1 2 4 3 在你省略所有不必要的...
606 根據二叉樹建立字串
分析 1 如果當前節點有兩個孩子,那麼在兩個孩子的結果外都要加括號 2 如果沒有孩子,則不需要加括號 3 只有左孩子,只需要給左孩子的結果加上括號 def tree2str self,t treenode str if t none return l r if t.left is not none ...