给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。
其中,克隆树 cloned 是原始树 original 的一个 副本 。
请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回
节点指针,其他语言返回节点本身)。
输入: tree = [7,4,3,null,null,6,19], target = 3
输出: 3
解释: 上图画出了树 original 和 cloned。target 节点在树 original 中,用绿色标记。答案是树 cloned 中的黄颜色的节点(其他示例类似)。
同时遍历
class Solution {
public:
TreeNode* getTargetCopy(TreeNode* original, TreeNode* cloned, TreeNode* target) {
if(original==target) return cloned;
if(original==NULL || cloned==NULL) return NULL;
TreeNode* left=getTargetCopy(original->left,cloned->left,target);
TreeNode* right=getTargetCopy(original->right,cloned->right,target);
return left==NULL?right:left;
}
};