File tree Expand file tree Collapse file tree 1 file changed +27
-6
lines changed Expand file tree Collapse file tree 1 file changed +27
-6
lines changed Original file line number Diff line number Diff line change 1
1
"""
2
2
Constraints:
3
- -
3
+ - The number of nodes in both trees is in the range [0, 100].
4
+ - -10^4 <= Node.val <= 10^4
4
5
5
- Time Complexity:
6
- -
6
+ Time Complexity: O(n)
7
+ - 각 노드를 한 번씩 방문
7
8
8
- Space Complexity:
9
- -
9
+ Space Complexity: O(h)
10
+ - 재귀 호출 스택의 깊이는 트리의 높이(h)에 비례함
10
11
11
12
풀이방법:
12
- 1.
13
+ 1. DFS와 재귀를 활용하여 두 트리를 동시에 탐색
14
+ 2. base case:
15
+ - p와 q가 모두 None이면 → 같은 트리
16
+ - 둘 중 하나만 None이거나 노드의 값이 다르면 → 다른 트리
17
+ 3. 재귀로 왼쪽과 오른쪽 서브트리가 모두 같은지 확인
13
18
"""
19
+ # Definition for a binary tree node.
20
+ # class TreeNode:
21
+ # def __init__(self, val=0, left=None, right=None):
22
+ # self.val = val
23
+ # self.left = left
24
+ # self.right = right
25
+ class Solution :
26
+ def isSameTree (self , p : Optional [TreeNode ], q : Optional [TreeNode ]) -> bool :
27
+ if p is None and q is None :
28
+ return True
29
+
30
+ if p is None or q is None or p .val != q .val :
31
+ return False
32
+
33
+ return self .isSameTree (p .left , q .left ) and self .isSameTree (p .right , q .right )
34
+
You can’t perform that action at this time.
0 commit comments