先序遍历构建二叉树 C++

旧街凉风 提交于 2020-03-11 13:20:43
#include<bits/stdc++.h>

using namespace std;

struct TreeNode{
    struct TreeNode * lchild, *rchild;
    int val;
    TreeNode(int x): val(x), lchild(NULL), rchild(NULL){}
};

void create(TreeNode* &root){
    char x;
    cin >> x;
    if(x == '#')
        root = NULL;
    else{
        root = new TreeNode(x - '0');
        create(root->lchild);
        create(root->rchild);
    }
}

void pre(TreeNode* root){
    if(root){
        cout << root->val << " ";
        pre(root->lchild);
        pre(root->rchild);
    }
}

int main(){
    TreeNode * root;
    create(root);
    cout << "create finish!" << endl;
    pre(root);
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!