LeetCode606:Construct String from Binary Tree

LeetCode606:Construct String from Binary Tree

题目大意

题目大意: 根据已给的二叉树,按照先序遍历的顺序生成字符串,利用()分开各个子树。

  • Example 1:

    Input: Binary tree: [1,2,3,4]
    
           1
         /   \
        2     3
       /    
      4    

    Output: "1(2(4))(3)"

  • Example 2:

    Input: Binary tree: [1,2,3,null,4]
       1
     /   \
    2     3
     \  
      4 

    Output: "1(2()(4))(3)"

已给代码格式如下:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    string tree2str(TreeNode* t) {

    }
};

思路分析

分析题中所给例子可知:每个子树用()包含,如果一棵树的左子树为空,而右子树不为空,则用()表示空左子树。

因此,需要对二叉树的先序遍历进行条件选择,并将遍历结果加入结果字符串s中,遍历结束后输出。
可根据二叉树的先序遍历算法改进转化而得到,代码如下:

 string tree2str(TreeNode* t) {
       string s="";
        if(t){
            s = to_string(t->val);
            if(t->left){
                s += "("+ tree2str(t->left)+")";
            }else if(t->right){
                s += "()";
            }
            if(t->right){
                s += "("+ tree2str(t->right)+")";
            }
        }
        return s;
 }

遇到的问题及解决方案

根据之前经验,将数字转化成字符串只需要在赋值时加上一个空字符串即可,形式如下:
int n = 5;
string s = "" +n;
即可获得s = "5";
但是在调试过程中发现,在LeetCode中并不能编译成功,需要用to_string()函数转化。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值