栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

鍒╃敤浜屽弶鏍戝瓧绗︿覆(鎸夌収杈撳叆瀛楃涓插垱寤轰簩鍙夋爲)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

鍒╃敤浜屽弶鏍戝瓧绗︿覆(鎸夌収杈撳叆瀛楃涓插垱寤轰簩鍙夋爲)

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



一、解题思路 1、解法一( Java )

解法思路:递归调用(二叉树常用)+字符串拼接

首先判断根节点是否为空null,若为空直接返回空串"";当根节点的左右节点均是空时返回根节点 String.valueOf(root.val) ;当左节点不为空右节点为空时省去右节点的空括号();当左节点为空右节点不为空时不能省去右节点的空括号()。

伪代码如下:

class Solution {
    public String tree2str(TreeNode root) {
        //二叉树常见递归调用方法
        if(root==null){//判断根节点是否为空,若为空直接返回空串
            return "";
        }

        if(root.left==null&&root.right==null){//根节点的左右节点均是空时返回根节点
            return String.valueOf(root.val);
        }
        
         if(root.left!=null&&root.right==null){//左节点不为空右节点为空时省去右节点的空括号
            return root.val +"("+tree2str(root.left)+")";
        }else{
            return root.val +"("+tree2str(root.left)+")"+"("+tree2str(root.right)+")";
             // 包含两种情况(左节点为空(返回空串)右节点不为空)(左节点不为空且右节点不为空)
        }
    }
}
1、解法二( Java )

解法思路:StringBuffer

伪代码如下:

class Solution {
    public String tree2str(TreeNode root) {
        if (root == null) {
            return "";
        }

        StringBuilder sb = new StringBuilder();
        sb.append(root.val);
        String left = tree2str(root.left);
        String right = tree2str(root.right);

        if (left.length() != 0 || right.length() != 0) {
            sb.append("(");
            sb.append(left);
            sb.append(")");
        }

        if (right.length() != 0) {
            sb.append("(");
            sb.append(right);
            sb.append(")");
        }

        return sb.toString();
    }
}

运行结果截图如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773715.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号