```vector<int> c,p,m;
本文思路倒是不难,我在遍历时犯了一个低级错误.前序遍历,中序,后序遍历本该是全局变量的参数,我给写到函数内部变成局部变量了。
 return局部变量会导致函数完成后,所指向的内存空间也随之被释放掉,随之报错




/**
 * 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> c,p,m;   //return局部变量会导致函数完成后,所指向的内存空间也随之被释放掉
    //前序遍历
    vector<int> BinaryTreeP(TreeNode* root)
    {
        
        if(root==nullptr) 
        {
            return p;
        }
        
        p.push_back(root->val);
        BinaryTreeP(root->left);
        BinaryTreeP(root->right);
        return p;
    }
        //中序遍历
    vector<int> BinaryTreeC(TreeNode* root)
    {
        
        if(root==nullptr) 
        {
            return c;
        }
        BinaryTreeC(root->left);
        c.push_back(root->val);
        BinaryTreeC(root->right);
        return c;
    }
            //后序遍历
    vector<int> BinaryTreeH(TreeNode* root)
    {
        
        if(root==NULL) 
        {
            return m;
        }
        BinaryTreeH(root->left);
        BinaryTreeH(root->right);
        m.push_back(root->val);
        return m;
    }
    
    vector<vector<int> > threeOrders(TreeNode* root) {
        // write code here
        vector<vector<int> > v;
        v.push_back(BinaryTreeP(root));
        v.push_back(BinaryTreeC(root));
        v.push_back(BinaryTreeH(root));
        return v;
    }
};