1379. 找出克隆二叉树中的相同节点
- 题目地址:https://leetcode-cn.com/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree/
/*
给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。
其中,克隆树 cloned 是原始树 original 的一个 副本 。
请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
*/
/*
遍历克隆树,找到与target节点相同值的节点返回即可
*/
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* ans;
void func(TreeNode* cloned, TreeNode* target) {
if (cloned->val == target->val) {
ans = cloned;
return;
}
else {
if (cloned->left != nullptr) func(cloned->left, target);
if (cloned->right != nullptr) func(cloned->right, target);
}
}
TreeNode* getTargetCopy(TreeNode* original, TreeNode* cloned, TreeNode* target) {
func(cloned, target);
return ans;
}
};