포스트

Same Tree

LeetCode 100. Same Tree

원문

Given the roots of two binary trees p and q, write a function to check if they are the same or not.

Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.

풀이

  1. pq 모두 None이면 True를 반환한다.
  2. pq 중 하나가 None이거나 p.valq.val이 같지 않으면 False를 반환한다.
  3. isSameTree(p.right, q.right)isSameTree(p.left, q.left)의 결과가 모두 True라면 True를, 아니면 False를 반환한다.

코드

Python

1
2
3
4
5
6
7
class Solution:
    def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
        if not p and not q:
            return True
        if not p or not q or p.val != q.val:
            return False
        return self.isSameTree(p.right, q.right) and self.isSameTree(p.left, q.left)

Java

1
2
3
4
5
6
7
8
9
10
11
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p == null && q == null) {
            return true;
        }
        if (p == null || q == null || p.val != q.val) {
            return false;
        }
        return isSameTree(p.right, q.right) && isSameTree(p.left, q.left);
    }
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.