class Solution
{
public:
//Function to return the level order traversal of a tree.
vector<int> levelOrder(Node* node)
{
//Your code here
vector<int> v;
queue<Node*> queue;
[Link](node);
while(![Link]())
{
Node *temp=[Link]();
v.push_back(temp->data);
if(temp->left!=NULL)
[Link](temp->left);
if(temp->right!=NULL)
[Link](temp->right);
[Link]();
}
return v;
}
};
vector<int> reverseLevelOrder(Node *root)
{
// code here
vector<int> v;
queue<Node*> q;
[Link](root);
while(![Link]())
{
Node *temp=[Link]();
v.push_back(temp->data);
if(temp->right!=NULL)
[Link](temp->right);
if(temp->left!=NULL)
[Link](temp->left);
[Link]();
}
reverse([Link](),[Link]());
return v;
}
//incorrect height of the tree
int c=0;
queue<Node*> q;
[Link](node);c++;
while(![Link]())
{
Node* temp=[Link]();
if(temp->right!=NULL || temp->left!=NULL)
c++;
if(temp->right!=NULL)
[Link](temp->right);
if(temp->left!=NULL)
[Link](temp->left);
[Link]();
}
return c;
//correct code
class Solution{
public:
//Function to find the height of a binary tree.
int height(struct Node* node){
// code here
if(node==NULL)
return 0;
int l=height(node->left);
int r=height(node->right);
return 1+max(l,r);
}
};
//traversals preoder,inorder,postorder
vector<int> v1;
vector<int> v2;
vector<int> v3;
void preorder(TreeNode *root)
{
vector<int> v;
if(root)
{
v1.push_back(root->data);
preorder(root->left);
preorder(root->right);
}
}
void inorder(TreeNode *root)
{
vector<int> v;
if(root)
{
inorder(root->left);
v2.push_back(root->data);
inorder(root->right);
}
}
void postorder(TreeNode *root)
{
vector<int> v;
if(root)
{
postorder(root->left);
postorder(root->right);
v3.push_back(root->data);
}
}
vector<vector<int>> getTreeTraversal(TreeNode *root){
// Write your code here.
vector<vector<int>> v;
preorder(root);
inorder(root);
postorder(root);
v.push_back(v2);
v.push_back(v1);
v.push_back(v3);
return v;
}