상위 150개 인터뷰중간

이진 트리에서 양호한 노드 계산

'이진 트리에서 양호한 노드 계산' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

중간

이진 트리 루트가 주어지면 루트에서 X까지의 경로에 X보다 큰 값을 가진 노드가 없으면 트리의 노드 X는 good으로 명명됩니다.

이진 트리의 양호한 노드 수를 반환합니다.

트리는 레벨 순서 목록으로 표시됩니다. goodNodes(root: list) -> int 함수를 구현하세요.

제약
  • The number of nodes in the binary tree is in the range [1, 100000]
  • -10000 <= Node.val <= 10000

Example 1
Input
[3,1,4,3,None,1,5]
Output
4
Explanation

Root 3 is always good. Node 4 (3<=4, good). Node 3 under node 1 (3<=3, good). Node 5 (3<=4<=5, good). Node 1 is not good (3>1). Node 1 under 4 is not good (4>1). Total: 4 good nodes.

Example 2
Input
[3,3,None,4,2]
Output
3
Explanation

Root 3 is good. Node 3 (left child, 3<=3, good). Node 4 (3<=3<=4, good). Node 2 is not good (3>2). Total: 3.

Example 3
Input
[1]
Output
1
Explanation

The root is always a good node.

Need a Hint?
세트나 힙과 같은 트리 관련 데이터 구조를 사용해 보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.