Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- using namespace std;
- class Node{
- public:
- int data;
- Node *left,*right;
- Node(int key){
- data=key;
- left=NULL;
- right=NULL;
- }
- };
- Node* FindLCA(Node *root,int key1,int key2){
- if(root==NULL)
- return NULL;
- if(root->data==key1 || root->data==key2)
- return root;
- Node* left=FindLCA(root->left,key1,key2);
- Node* right=FindLCA(root->right,key1,key2);
- if(left!=NULL && right!=NULL)
- return root;
- else
- return left!=NULL? left:right;
- }
- int main(){
- Node* root=NULL;
- Node* newnode=new Node(1);
- root=newnode;
- root->left=new Node(9);
- root->right=new Node(3);
- (root->left)->left=new Node(2);
- (root->right)->right=new Node(4);
- Node* temp=FindLCA(root,1,3);
- cout<<" "<<temp->data;
- return 0;
- }
Add Comment
Please, Sign In to add comment