File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 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 )
You canโt perform that action at this time.
0 commit comments