java实现--利用前序遍历将二叉树输出为括号字符串

这篇博客介绍了如何使用Java通过前序遍历来将二叉树转化为括号字符串,遵循特定的省略规则。文章详细讲解了题目描述,解题思路,并提供了完整的代码实现,包括在LeetCode上的代码版本。
摘要由CSDN通过智能技术生成

将二叉树输出为括号字符串

题目描述:

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

示例1:

在这里插入图片描述

解释:原本是“1(2(4)())(3())”,在省略所有不必要的空括号对之后,将变为"1(2(4))(3)"

示例2:
在这里插入图片描述

解题思路 :

通过理解题意和对比示例,可以发现二叉树根节点值正常输出,从第二层开始输出数值前需在值前面加"(",且当一直有左子树时递归输出,直到叶子节点才输出")",右子树同理。但值得注意的是:当一个节点只有左子树没有右子树时,右子树的"()“省略即可,但当一个节点只有右子树而没有左子树时,在遍历输出右子树之前需先输出”()"。

leetcode代码实现:
//当前代码实现的是普通二叉树
public class TreeNode{
   
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x){
   val=x;}
}
class Solution{
   
    public String tree2str(TreeNode t){
   
    StringBuilder res=new StringBuilder();
    tree2str(t,res);
    return res.toString();
}
private void tree2str(TreeNode node,StringBuilder res){
   
    if(node==null) return;
    res.append(node.val);
    if(node.left!=null){
   
        res.append("(");
        tree2str(node
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值