Untitled
unknown
plain_text
2 years ago
735 B
13
Indexable
void trav(TreeNode<int>* root,vector<int> &inorder){ //pass by ref
if(root==NULL) return ;
if(root->left) trav(root->left,inorder);
inorder.push_back(root->data);
if(root->right) trav(root->right,inorder);
//return ans;
}
TreeNode<int>* flatten(TreeNode<int>* root) //return head of list
{
vector<int> inorder;
trav(root,inorder);
int n=inorder.size();
TreeNode<int> *head =new TreeNode<int>(inorder[0]);
TreeNode<int> *curr= head;
for(int i=1;i<n;i++){
TreeNode<int> *tmp =new TreeNode<int>(inorder[i]);
curr->left=NULL;
curr->right=tmp;
curr=tmp;
}
curr->left=NULL;
curr->right=NULL;
return head;
}
Editor is loading...