二叉树的基本操作C++
本文用C++语言写了二叉树的基本操作,包括二叉树的四种遍历方式的递归和非递归写法,二叉查找树的插入,删除,构建,路径搜索,序列化和反序列化,是否镜像等操作,仅供参考。 #include<iostream> #include<stack> #include<queue> #include<vector> #include<string> using namespace std; struct TreeNode { TreeNode *left, *right; int val; TreeNode(int x) :val(x), left(NULL), right(NULL){} }; //前序遍历的递归写法 void helper1(TreeNode *root, vector<int> &res) { if (!root) return; res.push_back(root->val); helper1(root->left, res); helper1(root->right, res); } vector<int> preTraversalRecur(TreeNode *root) { vector<int> res; helper1(root, res); return res; } //前序遍历的非递归写法 vector<int> preTraversalNonrecur