jain12

Diameter of a binary tree

Mar 6th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. class Node{
  5.   public:
  6.       int data;
  7.       Node *left,*right;
  8.       Node(int key){
  9.         data=key;
  10.         left=NULL;
  11.         right=NULL;
  12.         }
  13.   };
  14.  
  15. void preorder(Node *root){
  16.   if(root==NULL)
  17.      return;
  18.   cout<<" "<<root->data;
  19.   preorder(root->left);
  20.   preorder(root->right);
  21.   }
  22.  
  23. int Height(Node *node_ptr){
  24.   if(node_ptr==NULL)
  25.     return 0;
  26.   return 1+max(Height(node_ptr->left),Height(node_ptr->right));
  27.   }
  28.  
  29. int DiameterOfTree(Node * root){
  30.   if(root==NULL)
  31.    return 0;
  32.    return max(1+Height(root->left)+Height(root->right),max(DiameterOfTree(root->left),DiameterOfTree(root->right)));
  33.   }
  34.  
  35. int main(){
  36.   Node *root=NULL;
  37.   Node *newnode=new Node(1);
  38.   root=newnode;
  39.   root->left=new Node(2);
  40.   root->right=new Node(3);
  41.   (root->left)->left=new Node(4);
  42.   (root->left)->right=new Node(5);
  43.   cout<<"pre order traversal ";
  44.   preorder(root);
  45.   cout<<endl<<DiameterOfTree(root);
  46.   return 0;
  47.   }
Add Comment
Please, Sign In to add comment