微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每日一题 --- 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()
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐