Leetcode Java Merge Two Binary Trees

업데이트:

문제

Link

코드

class Solution {

  public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
    if (root1 == null) {
      return root2;
    }
    if (root2 == null) {
      return root1;
    }
    root1.val += root2.val;
    root1.left = this.mergeTrees(root1.left, root2.left);
    root1.right = this.mergeTrees(root1.right, root2.right);
    return root1;
  }

}

결과

Link

설명

  1. root1과 root2의 두 이진 트리를 합치는 문제이다.

  2. 합칠 노드가 없는 두 경우를 먼저 확인한다.
    • root1이 null인 경우 root2와 합칠 이진 트리가 없으므로, root2를 주어진 문제의 결과로 반환한다.
    • root2가 null인 경우 root1과 합칠 이진 트리가 없으므로, root1을 주어진 문제의 결과로 반환한다.
  3. root1의 val 값에 root2의 val을 더해준다.

  4. root1의 left TreeNode에 root1의 left TreeNode와 root2의 left TreeNode를 이용하여 재귀 호출을 수행한 결과를 넣어준다.

  5. root1의 right TreeNode에 root1의 lrighteft TreeNode와 root2의 right TreeNode를 이용하여 재귀 호출을 수행한 결과를 넣어준다.

  6. root1에 root2를 합쳤으므로, root1을 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기