Skip to content

Commit 6e24719

Browse files
committed
solution: same-tree
1 parent ffbd62d commit 6e24719

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

โ€Žsame-tree/wozlsla.pyโ€Ž

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from typing import Optional
2+
3+
"""
4+
# Intuition
5+
์–ด๋–ป๊ฒŒ ์ˆœ์„œ๊ฐ€ ์ •์˜๋˜์ง€?
6+
์ˆœํšŒ -> ์–ด๋–ค ๊ตฌ์กฐ?
7+
๋น„๊ต
8+
9+
# Approach
10+
ํŠธ๋ฆฌ๊ฐ€ ๋™์ผํ•˜๋ ค๋ฉด ?
11+
1. ๊ตฌ์กฐ ๋น„๊ต
12+
2. ๊ฐ’ ๋น„๊ต
13+
14+
ํŠธ๋ฆฌ ๋™์‹œ ํƒ์ƒ‰
15+
- ๋‘ ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ null (๊ตฌ์กฐ) -> True
16+
- ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ null (๊ตฌ์กฐ) -> False
17+
- ๋‘ ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ ๊ฐ’์ด ์žˆ์Œ (๊ฐ’) -> True/False
18+
19+
# Complexity
20+
์‹œ๊ฐ„ ๋ณต์žก๋„
21+
- O(N)
22+
๊ณต๊ฐ„ ๋ณต์žก๋„
23+
- (์žฌ๊ท€) ์ „์œ„ ์ˆœํšŒ: ์ฝœ ์Šคํƒ -> O(H)
24+
"""
25+
26+
27+
# Definition for a binary tree node.
28+
class TreeNode:
29+
def __init__(self, val=0, left=None, right=None):
30+
self.val = val
31+
self.left = left
32+
self.right = right
33+
34+
35+
class Solution:
36+
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
37+
38+
# ์ข…๊ฒฐ ์กฐ๊ฑด 1: ๋‘ ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ null์ด๋ฉด ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•จ
39+
if p is None and q is None:
40+
return True
41+
42+
# ์ข…๋ฃŒ ์กฐ๊ฑด 2:
43+
# - ๊ตฌ์กฐ ๋ถˆ์ผ์น˜
44+
# - ๊ฐ’ ๋ถˆ์ผ์น˜
45+
if p is None or q is None or p.val != q.val:
46+
return False
47+
48+
# (์žฌ๊ท€) ์ž์‹ ๋น„๊ต
49+
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)

0 commit comments

Comments
ย (0)