99클럽 코테 스터디 7일차 TIL Find a Corresponding Node of a Binary Tree in a Clone of That Tree

방지환·2024년 5월 31일

코테 스터디

목록 보기
11/37

Find a Corresponding Node of a Binary Tree in a Clone of That Tree


  • 문제 풀이

    1. 트리노드가 널일땐 return null반환
    2. 재귀함수로 트리 자식 왼쪽값과 오른쪽값 둘다 돌린다.
    3. original 트리와 target이 같을때 cloned를 반환하면 된다.
  • 풀이 소스

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */

class Solution {
    TreeNode answer=null;

    public final TreeNode getTargetCopy(final TreeNode original, final TreeNode cloned, final TreeNode target) {
        if(original ==null){
            return null;
        }
        
        getTargetCopy(original.right, cloned.right, target);
        getTargetCopy(original.left, cloned.left, target);
        if(original == target){
            answer = cloned;
        }
        return answer;
    }
}
  • 오늘의 회고

    • 문제 시도 및 해결
      • 주어진 메소드로 재귀함수를 돌리면 되겠다는 생각을했다.
      • 어제와 같이 null체크를 하고 자식 노드들에 대해 재귀를 돌렸다.
      • 정답에 cloned대신 original를 반환하였더니 에러가 났었다.
      • 문제를 제대로 보고 난 후 cloned를 반환하였더니 통과했다.
    • 학습 내용
      • binary tree를 통한 재귀함수 공부
  • 다음 배울것
    • 부족한 자바 문법
    • 스프링 공부
    • 알고리즘
    • 코테 문제 풀이

0개의 댓글