其他分享
首页 > 其他分享> > 每日一题 --- 606. 根据二叉树创建字符串[力扣][Go]

每日一题 --- 606. 根据二叉树创建字符串[力扣][Go]

作者:互联网

题目:

你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。

解题代码:

递归

func tree2str(root *TreeNode) string {
	var ans strings.Builder
	var dfs func(*TreeNode)
	dfs = func(node *TreeNode) {
		if node == nil {
			return
		}
		ans.WriteString(strconv.Itoa(node.Val))
		if node.Right != nil {
			ans.WriteString("(")
			dfs(node.Left)
			ans.WriteString(")")
			ans.WriteString("(")
			dfs(node.Right)
			ans.WriteString(")")
		} else if node.Left != nil {
			ans.WriteString("(")
			dfs(node.Left)
			ans.WriteString(")")
		}
	}
	dfs(root)
	return ans.String()
}

在这里插入图片描述

标签:node,606,TreeNode,WriteString,dfs,力扣,二叉树,ans
来源: https://blog.csdn.net/weixin_52025712/article/details/123591223