示例#1
0
 void inorderT(TreeNode *root,vector<int> &num,vector<TreeNode *> &nodes)
 {
 	if(root->left != NULL) inorderT(root->left,num,nodes);
 	num.push_back(root->val);
 	nodes.push_back(root);
 	if(root->right != NULL) inorderT(root->right,num,nodes);
 }
示例#2
0
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;

        inorderT(root, res);

        return res;
    }
示例#3
0
 void recoverTree(TreeNode *root) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
  	vector<int> num;
  	vector<TreeNode *> nodes;
  	inorderT(root,num,nodes);
  	sort(num.begin(),num.end());
  	for(int i = 0;i < num.size();i++)
  	{
  		nodes[i]->val=num[i];
  	}
 }
示例#4
0
 void inorderT(TreeNode* root, vector<int>& res) {
     if (root == NULL) return ;
     if (root->left != NULL) inorderT(root->left, res);
     res.push_back(root->val);
     if (root->right != NULL) inorderT(root->right, res);
 }