1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
class Solution {
public final TreeNode getTargetCopy(final TreeNode original, final TreeNode cloned, final TreeNode target) {
return findTarget(original, cloned, target);
}
private TreeNode findTarget(TreeNode original, TreeNode cloned, TreeNode target) {
if (original == null) return null;
// 타겟 노드와 동일한 노드를 찾으면 클론된 트리의 현재 노드를 반환
if (original == target) return cloned;
// 왼쪽 서브트리 탐색
TreeNode leftResult = findTarget(original.left, cloned.left, target);
if (leftResult != null) return leftResult;
// 오른쪽 서브트리 탐색
return findTarget(original.right, cloned.right, target);
}
}
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}