### C++ program to find depth of the deepest odd level node in binary tree

Description:
This Program is to find depth of the deepest odd level node in binary tree
For Example:

Input :
The Elements are : 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8

1
/ \
2 3
/ / \
4 5 6
\
7
\
8

Output :

Required depth : 5

Program :

//C++ program to find depth of the deepest odd level node in binary tree #include <bits/stdc++.h> using namespace std; // Tree node struct Node { int data; Node *left, *right; }; // Returns a new tree Node Node* newNode(int data) { Node* temp = new Node(); temp->data = data; temp->left = temp->right = NULL; return temp; } // Is a leaf or not bool isleaf(Node *root) { return (root->left == NULL && root->right == NULL); } // Find depth of the deepest odd level leaf int depthUntil(struct Node *root, int level) { // Base Case if (root == NULL) return 0; // Increment current level level += 1; // If this node is a leaf and its level is odd, return its level if (level%2 != 0 && isleaf(root)) return level; return max(depthUntil(root->left, level), depthUntil(root->right, level)); } // Calculates the depth of deepest odd level leaf. int depthOdd(Node *root) { return depthUntil(root, 0); } int main() { struct Node* root = newNode(1); root->left = newNode(2); root->right = newNode(3); root->left->left = newNode(4); root->right->left = newNode(5); root->right->right = newNode(6); root->right->right->right = newNode(7); root->right->right->right->right = newNode(8); cout << " Required depth : " << depthOdd(root) ; getchar(); return 0; }

#### More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 6240 19
C++ program to find an element into binary tree 772 16
C++ std::is_void 572 15
C++ program to find the closest element in binary search tree 915 19
C++ program to replace every element with the least greater element on its right 573 12
C++ program to delete an element into binary tree 784 24
C++ program to find maximum element between two nodes of binary search tree 699 20
C++ std::remove_copy_if with std::vectors 547 11
C++ program to print duplicate elements from the binary search tree 2937 15
C++ program to find depth of the deepest odd level node in binary tree 575 23
C++ program to remove duplicate elements from the binary search tree 1548 20
C++ std::rotate_copy with std::vector 529 14
C++ std::copy_n with std::vector 638 22
C++ std::copy_if with std::vector 1552 18
C++ program to print all the elements of binary search tree 7105 22
C++ std::reverse_copy with std::list 598 18
C++ program to print all the elements of binary tree 1158 18
C++ program to print all full nodes in a binary tree 572 25
C++ program to find sink odd nodes in binary tree 579 15
C++ std::is_copy_assignable 595 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 609 19
C++ std::is_copy_constructible 618 27
C++ program to delete an element into binary search tree 2873 18
C++ std::reverse_copy with std::vector 487 18
C++ std::rotate with std::vector 641 15
C++ program to check for symmetric binary tree using recursion 599 25
C++ program to maximum sum from a tree with adjacent levels not allowed 551 15
C++ std::copy_n with std::list 594 21
C++ program to check if two trees are identical using recursion 545 15
C++ std::copy_n 873 21
C++ std::copy_if with std::list 998 19
C++ program to print the nodes at odd levels of a tree 562 13
C++ program to find lowest common ancestor in a binary tree 689 29
C++ program to find depth of the deepest odd level leaf node 494 13
C++ std::remove_copy_if with std::list 666 20
C++ program to add all greater values to every node in a given binary search tree 637 15