/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类 the root of binary tree
* @return int整型vector<vector<>>
*/
vector<int> pre;
vector<int> mid;
vector<int> post;
void preOrder(TreeNode* root)
{
if(root == NULL) return;
pre.push_back(root->val);
preOrder(root->left);
preOrder(root->right);
}
void midOrder(TreeNode* root)
{
if(root == NULL) return ;
midOrder(root->left);
mid.push_back(root->val);
midOrder(root->right);
}
void rearOrder(TreeNode* root)
{
if(root == NULL) return;
rearOrder(root->left);
rearOrder(root->right);
post.push_back(root->val);
}
vector<vector<int> > threeOrders(TreeNode* root) {
// write code here
vector<vector<int> > result;
preOrder(root);
midOrder(root);
rearOrder(root);
result ={pre,mid,post};
return result;
}
};
总结来看:
1,代码简洁
2,思路清晰:
前序遍历:中左右
中序遍历:左中右
后序遍历:左中右
3,容器的添加方式的一种写法
vector<vector > result; result ={pre,mid,post};