C++实现简单的二叉树

来源:互联网 发布:golang mgo.v2 编辑:程序博客网 时间:2024/06/16 06:01

由于许多题目都是基于二叉树设计的,我们验证答案的时候总无法避免创建二叉树。这里根据前序遍历的顺序输入节点来创建二叉树,需要输入-1来表示NULL节点。

#include<iostream>using namespace std;class TreeNode{public:    int val;    TreeNode *left;    TreeNode *right;};TreeNode *createTree(){    int temp;    cin >> temp;    if (temp == -1)        return NULL;    TreeNode *root = new TreeNode();    root->val = temp;    root->left = createTree();    root->right = createTree();    return root;}void midorder(TreeNode *root){    if (root == NULL)        return;    midorder(root->left);    cout << root->val << " ";    midorder(root->right);}int main(){    TreeNode *root = createTree();    midorder(root);}