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

你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。

空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。

 

 解答:

/**
 * 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 {
    string output;
public:
    string tree2str(TreeNode* t) {
        string resultString;
        resultString=Preorder(t);
        
        
        return resultString;

    }
    string Preorder(TreeNode* root){
        string result;
        if(root==NULL){
            return result;
        }
        result=result+to_string(root->val);
        if(root->left!=NULL){
            result=result+'('+Preorder(root->left)+')';
        }
        else if(root->right!=NULL){
            result=result+'('+')';
        }
        else{
            result=result;
        }
        if(root->right!=NULL){
            result=result+'('+Preorder(root->right)+')';
            
        }
        else{
            result=result;
        }
        
        return result;
        
    }
};

posted @ 2020-07-25 11:02  LXSNeversayNever  阅读(98)  评论(0)    收藏  举报