Given two binary trees
The
Return a reference to the same node in the
original and cloned and given a reference to a node target in the original tree.The
cloned the tree is a copy of the original tree.Return a reference to the same node in the
cloned tree.Note that you are not allowed to change any of the two trees or the
target node and the answer must be a reference to a node in the cloned tree.Example 1:
Input: tree ={1,2,null,3}, target = 2
Output: 2Approach
Java
public class FindCorrespondingNodeBTree {public static void main(String[] args) {TreeNode root = new TreeNode(1);root.left = new TreeNode(2);TreeNode target = root.left;root.left.left = new TreeNode(3);TreeNode cloned = root;TreeNode get = getTargetCopy(root, cloned, target);System.out.println(get.val);}private static TreeNode getTargetCopy(TreeNode original,TreeNode cloned, TreeNode target) {if (original == null || cloned == null)return null;if (original == target)return cloned;TreeNode left1 = getTargetCopy(original.left, cloned.left, target);TreeNode right1 = getTargetCopy(original.right, cloned.right, target);if (left1 != null)return left1;return right1;}}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) {this.val = val;}TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}}
C++
#include <bits/stdc++.h>using namespace std;//struct for treenodestruct TreeNode{int data;TreeNode *left;TreeNode *right;TreeNode(int data){this->data=data;this->left=NULL;this->right=NULL;}};TreeNode* getTargetCopy(TreeNode* original, TreeNode* cloned,TreeNode* target){if(original==NULL ||cloned==NULL)return NULL;if(original==target)return cloned;TreeNode *left1=getTargetCopy(original->left,cloned->left,target);TreeNode *right1=getTargetCopy(original->right,cloned->right,target);if(left1!=NULL)return left1;return right1;}int main(){TreeNode *root=new TreeNode(1);root->left=new TreeNode(2);TreeNode *target=root->left;root->left->left=new TreeNode(3);TreeNode *cloned=root;TreeNode *get=getTargetCopy(root,cloned,target);cout<<get->data;return 0;}
No comments:
Post a Comment