Skip to content

Commit 9e611b5

Browse files
committed
solve: Same Tree
1 parent a9ced98 commit 9e611b5

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

same-tree/KwonNayeon.py

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
11
"""
22
Constraints:
3-
-
3+
- The number of nodes in both trees is in the range [0, 100].
4+
- -10^4 <= Node.val <= 10^4
45
5-
Time Complexity:
6-
-
6+
Time Complexity: O(n)
7+
- 각 노드를 한 번씩 방문
78
8-
Space Complexity:
9-
-
9+
Space Complexity: O(h)
10+
- 재귀 호출 스택의 깊이는 트리의 높이(h)에 비례함
1011
1112
풀이방법:
12-
1.
13+
1. DFS와 재귀를 활용하여 두 트리를 동시에 탐색
14+
2. base case:
15+
- p와 q가 모두 None이면 → 같은 트리
16+
- 둘 중 하나만 None이거나 노드의 값이 다르면 → 다른 트리
17+
3. 재귀로 왼쪽과 오른쪽 서브트리가 모두 같은지 확인
1318
"""
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+

0 commit comments

Comments
 (0)