题目 找出克隆二叉树中的相同节点
给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。
其中,克隆树 cloned 是原始树 original 的一个 副本 。
请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用
示例 1:
输入: tree = [7,4,3,null,null,6,19], target = 3
输出: 3(黄色结点3的引用)
解释: 上图画出了树 original 和 cloned。target 节点在树 original 中,用绿色标记。答案是树 cloned 中的黄颜色的节点(其他示例类似)
解
同时递归遍历两棵树,如果遍历到原树结点等于target,则对应cloned结点即所求点
class Solution {
//全局结点赋值求取结点
TreeNode* pNode = NULL;
public:
TreeNode* getTargetCopy(TreeNode* original, TreeNode* cloned, TreeNode* target) {
if(original == target)
pNode = cloned;
if(pNode == NULL && original->left) getTargetCopy(original->left , cloned->left , target);
if(pNode == NULL && original->right) getTargetCopy(original->right , cloned->right , target);
return pNode;
}
};