'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀
문제 👉 <Longest Univalue Path - LeetCode>
1. 문제 (가장 긴 동일 값의 경로)
동일한 값을 지닌 가장 긴 경로를 찾아라.
2. 풀이
DFS
를 이용한 풀이
3. 코드
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
result = 0
def longestUnivaluePath(self, root: TreeNode) -> int:
def dfs(node: TreeNode):
if node is None: return 0
left = dfs(node.left)
right = dfs(node.right)
if node.left and node.left.val == node.val:
left += 1
else:
left = 0
if node.right and node.right.val == node.val:
right += 1
else:
right = 0
self.result = max(self.result, left + right)
return max(left, right)
dfs(root)
return self.result
- 결과 :
방식 | Status | Runtime | Memory | Language |
---|---|---|---|---|
DFS | [Accepted] | 400 ms | 18 MB | python3 |
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
댓글