515. 각 트리 행에서 가장 큰 값 찾기
난이도:중
주제: 트리, 깊이 우선 검색, 너비 우선 검색, 이진 트리
이진 트리의 루트가 주어지면 트리의 각 행에서 가장 큰 값의 배열을 반환합니다(0-인덱스).
예 1:
예 2:
제약조건:
해결책:
"각 트리 행에서 가장 큰 값 찾기" 문제는 이진 트리의 각 수준(행)에 존재하는 가장 큰 값을 식별해야 합니다. 이진 트리가 주어지면 목표는 트리를 행별로 순회하여 각 행에서 최대값을 수집하는 것입니다. 이 문제는 BFS(너비 우선 검색) 또는 DFS(깊이 우선 검색)
과 같은 기본적인 트리 탐색 기술과 관련이 있습니다.각 행에서 가장 큰 값을 찾는 가장 간단한 접근 방식은 BFS:
를 사용하는 것입니다.또는 DFS를 사용할 수도 있습니다.
이 솔루션을 PHP로 구현해 보겠습니다: 515. 각 트리 행에서 가장 큰 값 찾기
val = $val; $this->left = $left; $this->right = $right; } } /** * @param TreeNode $root * @return Integer[] */ function largestValues($root) { ... ... ... /** * go to ./solution.php */ } // Example usage: $root = new TreeNode(1); $root->left = new TreeNode(3); $root->right = new TreeNode(2); $root->left->left = new TreeNode(5); $root->left->right = new TreeNode(3); $root->right->right = new TreeNode(9); print_r(largestValues($root)); // Output: [1, 3, 9] ?>설명:
입력: [1,3,2,5,3,널,9]
- 레벨 0: 노드 값: [1] → 최대값: 1.
- 레벨 1: 노드 값: [3, 2] → 최대값: 3.
- 레벨 2: 노드 값: [5, 3, 9] → 최대: 9. #### 출력: [1, 3, 9].
시간복잡도
입력: 루트 = [1,3,2,5,3,null,9]
출력: [1, 3, 9].
이 BFS 기반 솔루션은 선형 시간 복잡도를 사용하여 각 트리 행에서 가장 큰 값을 효율적으로 계산합니다. 큰 나무, 음수 값, 빈 나무와 같은 엣지 케이스를 효과적으로 처리합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.
위 내용은 . 각 트리 행에서 가장 큰 값 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!