失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据结构|二叉树前序 中序 后序遍历C++代码实现(递归)

数据结构|二叉树前序 中序 后序遍历C++代码实现(递归)

时间:2018-09-01 12:59:43

相关推荐

数据结构|二叉树前序 中序 后序遍历C++代码实现(递归)

二叉树的前序遍历

/*** Definition for a binary tree node.* struct TreeNode {*int val;*TreeNode *left;*TreeNode *right;*TreeNode() : val(0), left(nullptr), right(nullptr) {}*TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/class Solution {public:void preorder(TreeNode* root,vector<int> &res){if(root==nullptr){return;}res.push_back(root->val);preorder(root->left,res);preorder(root->right,res);}vector<int> preorderTraversal(TreeNode* root) {vector<int> res;preorder(root,res);return res;}};

二叉树的中序遍历

/*** Definition for a binary tree node.* struct TreeNode {*int val;*TreeNode *left;*TreeNode *right;*TreeNode() : val(0), left(nullptr), right(nullptr) {}*TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/class Solution {public:void inorder(TreeNode* root, vector<int>& res) {if (!root) {return;}inorder(root->left, res);res.push_back(root->val);inorder(root->right, res);}vector<int> inorderTraversal(TreeNode* root) {vector<int> res;inorder(root, res);return res;}};

二叉树的后序遍历

/*** Definition for a binary tree node.* struct TreeNode {*int val;*TreeNode *left;*TreeNode *right;*TreeNode() : val(0), left(nullptr), right(nullptr) {}*TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/class Solution {public:void postorder(TreeNode* root,vector<int> &res){if(root==nullptr){return;}postorder(root->left,res);postorder(root->right,res);res.push_back(root->val);}vector<int> postorderTraversal(TreeNode* root) {vector<int> res;postorder(root, res);return res;}};

可以看出上面三种遍历使用的是同一种模板,只要记住模板即可。

如果觉得《数据结构|二叉树前序 中序 后序遍历C++代码实现(递归)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。