leetcode 606 根據二叉樹建立字串

2021-10-09 20:47:57 字數 1441 閱讀 4829

根據二叉樹建立字串

你需要採用前序遍歷的方式,將乙個二叉樹轉換成乙個由括號和整數組成的字串。

空節點則用一對空括號 「()」 表示。而且你需要省略所有不影響字串與原始二叉樹之間的一對一對映關係的空括號對。

示例 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:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

tree2str

(self, t: treenode)

->

str:

# 使用遞迴 首先判斷終止條件

if t is

none

:return

""# 當前節點不是空字串的時候,返回 root(left)(right)

str_root =

str(t.val)

str_left = self.tree2str(t.left)

str_right = self.tree2str(t.right)

if t.left is

none

and t.right is

none

:return str_root

elif t.left and t.right:

return str_root +

'('+ str_left +

')'+

'('+ str_right +

')'elif t.left is

none

and t.right:

return str_root +

'()'

+'('

+ str_right +

')'elif t.left and t.right is

none

:return str_root +

'('+ str_left +

')'

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 在你省略所有不必要...