- 문제 링크: https://leetcode.com/problems/diameter-of-binary-tree/
- 난이도: Easy
binary tree의 지름을 구하는 문제
모든 노드에서 (왼쪽 subtree 높이 + 오른쪽 subtree 높이) 값들의 max를 구하면 된다. 지름이 꼭 root를 포함해야된다는 보장이 없어서 이렇게 한다.
dfs 함수는 node 부터 시작하는 subtree의 높이를 반환하도록 만든다
class Solution:
def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
res = 0
def dfs(node: Optional[TreeNode]):
"""
:returns: height of current subtree
"""
nonlocal res
if not node:
return 0
left = dfs(node.left)
right = dfs(node.right)
res = max(res, left + right)
return 1 + max(left, right)
dfs(root)
return res
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 90. Subsets II (0) | 2024.09.17 |
---|---|
[LeetCode][Python] 104. Maximum Depth of Binary Tree (0) | 2024.09.16 |
[LeetCode][Python] 78. Subsets (0) | 2024.09.16 |
[LeetCode][Python] 226. Invert Binary Tree (0) | 2024.09.16 |
[LeetCode][Python] 19. Remove Nth Node From End of List (0) | 2024.09.13 |