재귀함수: 리턴 값
문제:
트리의 가장 깊은 깊이 출력
평소 풀던 방식: 재귀함수가 base condition 만족할 때마다 global변수 갱신.
def maxDepth(self, root: Optional[TreeNode]) -> int:
ans = 0
def dfs(node, n):
nonlocal ans
if node is None:
ans = max(ans, n)
return
dfs(node.left, n+1)
dfs(node.right, n+1)
dfs(root, 0)
return ans
이 방식은 나중에 memoization, dp할 때 응용이 힘들다.
재귀함수 자체가 리턴값을 같게 한다:
def maxDepth(self, root: Optional[TreeNode]) -> int:
def dfs(node, depth):
if not node:
return depth
return max(dfs(node.left, depth+1), dfs(node.right, depth+1))
return dfs(root, 0)
이 방식을 연습,,
Author And Source
이 문제에 관하여(재귀함수: 리턴 값), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dmddo1222/재귀함수-리턴-값저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)