code for left view of binary tree is added
parent
07d7d4aeb8
commit
71a8ed4a23
|
@ -0,0 +1,60 @@
|
|||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
|
||||
struct Node {
|
||||
int data;
|
||||
struct Node *left, *right;
|
||||
};
|
||||
|
||||
struct Node* newNode(int item)
|
||||
{
|
||||
struct Node* temp
|
||||
= (struct Node*)malloc(sizeof(struct Node));
|
||||
temp->data = item;
|
||||
temp->left = temp->right = NULL;
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
||||
void leftViewUtil(struct Node* root, int level,
|
||||
int* max_level)
|
||||
{
|
||||
// Base Case
|
||||
if (root == NULL)
|
||||
return;
|
||||
|
||||
// If this is the first Node of its level
|
||||
if (*max_level < level) {
|
||||
cout << root->data << " ";
|
||||
*max_level = level;
|
||||
}
|
||||
|
||||
// Recur for left subtree first,
|
||||
// then right subtree
|
||||
leftViewUtil(root->left, level + 1, max_level);
|
||||
leftViewUtil(root->right, level + 1, max_level);
|
||||
}
|
||||
|
||||
// A wrapper over leftViewUtil()
|
||||
void leftView(struct Node* root)
|
||||
{
|
||||
int max_level = 0;
|
||||
leftViewUtil(root, 1, &max_level);
|
||||
}
|
||||
|
||||
// Driver Code
|
||||
int main()
|
||||
{
|
||||
Node* root = newNode(10);
|
||||
root->left = newNode(2);
|
||||
root->right = newNode(3);
|
||||
root->left->left = newNode(7);
|
||||
root->left->right = newNode(8);
|
||||
root->right->right = newNode(15);
|
||||
root->right->left = newNode(12);
|
||||
root->right->right->left = newNode(14);
|
||||
|
||||
leftView(root);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue