Skip to content

Commit 5c988d3

Browse files
authored
Merge pull request zapellass123#330 from Lovecase/patch-1
Create Level_order_traversal.cpp
2 parents fe0adeb + 76ae39e commit 5c988d3

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

Level_order_traversal.cpp

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
2+
// order traversal of Binary Tree
3+
4+
#include <bits/stdc++.h>
5+
using namespace std;
6+
7+
class node {
8+
public:
9+
int data;
10+
node *left, *right;
11+
};
12+
13+
14+
void printCurrentLevel(node* root, int level);
15+
int height(node* node);
16+
node* newNode(int data);
17+
18+
19+
void printLevelOrder(node* root)
20+
{
21+
int h = height(root);
22+
int i;
23+
for (i = 1; i <= h; i++)
24+
printCurrentLevel(root, i);
25+
}
26+
27+
28+
void printCurrentLevel(node* root, int level)
29+
{
30+
if (root == NULL)
31+
return;
32+
if (level == 1)
33+
cout << root->data << " ";
34+
else if (level > 1) {
35+
printCurrentLevel(root->left, level - 1);
36+
printCurrentLevel(root->right, level - 1);
37+
}
38+
}
39+
40+
41+
int height(node* node)
42+
{
43+
if (node == NULL)
44+
return 0;
45+
else {
46+
47+
int lheight = height(node->left);
48+
int rheight = height(node->right);
49+
50+
/* use the larger one */
51+
if (lheight > rheight) {
52+
return (lheight + 1);
53+
}
54+
else {
55+
return (rheight + 1);
56+
}
57+
}
58+
}
59+
60+
61+
node* newNode(int data)
62+
{
63+
node* Node = new node();
64+
Node->data = data;
65+
Node->left = NULL;
66+
Node->right = NULL;
67+
68+
return (Node);
69+
}
70+
71+
72+
int main()
73+
{
74+
node* root = newNode(1);
75+
root->left = newNode(2);
76+
root->right = newNode(3);
77+
root->left->left = newNode(4);
78+
root->left->right = newNode(5);
79+
80+
cout << "Level Order traversal of binary tree is \n";
81+
printLevelOrder(root);
82+
83+
return 0;
84+
}
85+

0 commit comments

Comments
 (0)