递归超简单
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int>a;
firstorder(root, a);
return a; //必须有返回值
}
void firstorder(TreeNode* root, vector<int>&a) //这儿要有 &!
{
if (!root)
return;
//============前序================
a.push_back(root->val);
firstorder(root->left, a);
firstorder(root->right, a);
//============中序================
firstorder(root->left, a);
a.push_back(root->val);
firstorder(root->right, a);
//============后序================
firstorder(root->left, a);
firstorder(root->right, a);
a.push_back(root->val);
//=========前序+中序+后序==========
a.push_back(root->val);
firstorder(root->left, a);
a.push_back(root->val);
firstorder(root->right, a);
a.push_back(root->val);
}
};