Cplusplus - Tree- Binary Tree Right side View
parent
d3c2184af8
commit
3db54b6a51
|
@ -0,0 +1,103 @@
|
||||||
|
//Print the list of all the nodes visible when the binary tree is observed from the right side.
|
||||||
|
//Starting from the top , i.e. the root node.
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <queue>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
// Node structure for tree
|
||||||
|
struct TreeNode {
|
||||||
|
int val;
|
||||||
|
TreeNode *left;
|
||||||
|
TreeNode *right;
|
||||||
|
|
||||||
|
TreeNode(int val) {
|
||||||
|
this->val = val;
|
||||||
|
left = nullptr;
|
||||||
|
right = nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void rightsideview(TreeNode * root)
|
||||||
|
{
|
||||||
|
vector<int> ans;
|
||||||
|
|
||||||
|
TreeNode* curr;
|
||||||
|
|
||||||
|
curr=root;
|
||||||
|
queue<TreeNode*> que;
|
||||||
|
|
||||||
|
que.push(curr);
|
||||||
|
|
||||||
|
while(!que.empty())
|
||||||
|
{
|
||||||
|
int s=que.size();
|
||||||
|
|
||||||
|
for(int i=0;i<s;i++)
|
||||||
|
{
|
||||||
|
curr=que.front();
|
||||||
|
que.pop();
|
||||||
|
if(curr->left!=NULL)
|
||||||
|
que.push(curr->left);
|
||||||
|
if(curr->right!=NULL)
|
||||||
|
que.push(curr->right);
|
||||||
|
}
|
||||||
|
|
||||||
|
ans.push_back(curr->val);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for(int i=0;i<ans.size();i++)
|
||||||
|
{
|
||||||
|
cout<<ans[i]<<"\t";
|
||||||
|
}
|
||||||
|
cout<<endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
TreeNode * root= new TreeNode(1), * curr;
|
||||||
|
root->left=new TreeNode(2);
|
||||||
|
root->right= new TreeNode(3);
|
||||||
|
|
||||||
|
curr=root->right;
|
||||||
|
curr->left= new TreeNode(4);
|
||||||
|
|
||||||
|
curr=root->left;
|
||||||
|
|
||||||
|
curr->left= new TreeNode(5);
|
||||||
|
|
||||||
|
curr->left->left= new TreeNode(6);
|
||||||
|
|
||||||
|
curr=curr->left->left;
|
||||||
|
|
||||||
|
curr->left= new TreeNode(7);
|
||||||
|
curr->left->right= new TreeNode(8);
|
||||||
|
curr->left->left=new TreeNode(9);
|
||||||
|
|
||||||
|
|
||||||
|
// 1
|
||||||
|
// / \
|
||||||
|
// 2 3
|
||||||
|
// / /
|
||||||
|
// 5 4
|
||||||
|
// /
|
||||||
|
// 6
|
||||||
|
// /
|
||||||
|
// 7
|
||||||
|
// / \
|
||||||
|
// 9 8
|
||||||
|
|
||||||
|
|
||||||
|
// The Output Should be -> 1, 3, 4, 6, 7, 8;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rightsideview(root); // This function prints the result;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue