当前位置 : 主页 > 编程语言 > java >

606. 根据二叉树创建字符串

来源:互联网 收集:自由互联 发布时间:2022-07-04
文章目录 ​​Question​​ ​​Ideas​​ ​​Code​​ Question ​​606. 根据二叉树创建字符串​​ 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节


文章目录

  • ​​Question​​
  • ​​Ideas​​
  • ​​Code​​

Question

​​606. 根据二叉树创建字符串​​

你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。

空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。

示例 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)"

解释: 和第一个示例相似,
除了我们不能省略第一个对括号来中断输入和输出之间的一对一映射关系。

Ideas

dfs前序遍历

Code

class Solution:
def tree2str(self, root: Optional[TreeNode]) -> str:
def dfs(root):
if not root:
return ''
if not root.left and not root.right:
return f'{root.val}'
if not root.right:
return f'{root.val}({dfs(root.left)})'
return f'{root.val}({dfs(root.left)})({dfs(root.right)})'
return dfs(root)



【本文来源:韩国服务器 http://www.558idc.com/kt.html欢迎留下您的宝贵建议】
上一篇:分组背包问题(DP)
下一篇:没有了
网友评论