TutorialStudyMite

Left View and Right View of a Binary Tree

Sstudymite2 min read
Beginner friendly

Track completion, mastery, and revision.

Left view and Right view of a binary tree using Iteration

For the left view, we'll traverse each level and print the first node's data of that level and similarly, for the right view, we'll traverse each level and print the data of the last node in that level.

#include<bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* left;
Node* right;
Node(int data){
this->data = data;
left = right = NULL;
}
};
void printLeftAndRightViewIterative(Node* root){
if(root == NULL) return;
queue<Node*> q;
q.push(root);
while(!q.empty()){
int size = q.size();

}
int main() {
/*
1
/    
2      3
/   \   /  
4     5 6    7
 root = new Node(1);
root->left = new Node(2);
root->left->left = new Node(4);
root->left->right = new Node(5);
root->right = new Node(3);
root->right->left = new Node(6);
root->right->right = new Node(7);
printLeftAndRightViewIterative(root);
return 0;
}

Left view and Right view of a binary tree using Recursion

For printing the left node we will recursively call the left part of the tree and print it, and for the right view, we'll recursively call the right part of the tree and print it.

#include<bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* left;
Node* right;
Node(int data){
this->data = data;
left = right = NULL;
}
};
void printLeftAndRightViewRecursive(Node* root){
if(root == NULL) return;

}
int main() {
/*
1
/    
2      3
/   \   /  
4     5 6    7
 root = new Node(1);
root->left = new Node(2);
root->left->left = new Node(4);
root->left->right = new Node(5);
root->right = new Node(3);
root->right->left = new Node(6);
root->right->right = new Node(7);
printLeftAndRightViewRecursive(root);
return 0;
}

Finished reading?

Was this helpful?

Your feedback shapes better tutorials for everyone.