void inorderHelper(TreeNode *root, vector<int> &inorder) { if(!root) return; inorderHelper(root->left, inorder); inorder.push_back(root->val); inorderHelper(root->right, inorder); }
// ------------------------------------inorderHelper----------------------------------------------- // Description: recursively fills the array with the contents of the tree inorder // ------------------------------------------------------------------------------------------------------------- void BinTree::inorderHelper(NodeData*arr[], int &index, Node *node) const { if(node->left != NULL) inorderHelper(arr, index, node->left); arr[index++] = node->data; if(node->right != NULL) inorderHelper(arr, index, node->right); }
void BST::inorderHelper(Node *node){ if(node == NULL){ return; } else{ inorderHelper(node -> left); cout<<node->data<<"->"; globalInorder[globalLenInorder++]=node->data; //For finding lowest common ancestor inorderHelper(node -> right); } }
// ------------------------------------bstreeToArray----------------------------------------------- // Description:makes sure tree is not empty and then calls inOrderHelper to recursively // fill the array. Empty's out the tree leaving it with a NULL root // ------------------------------------------------------------------------------------------------------------- void BinTree::bstreeToArray(NodeData* arr[]) { int i = 0; if(this->root != NULL) inorderHelper(arr, i, this->root); makeEmpty(this->root); }
//Inorder Traversal of BST void BST::inorder(){ if(root == NULL){ cout<<"BST empty"; } else{ cout<<endl<<"Inorder Traversal"<<endl; inorderHelper(root); } }
vector<int> inorderTraversal(TreeNode *root) { vector<int> inorder; inorderHelper(root, inorder); return inorder; }