155. 두 갈래 나무의 최소 깊이
두 갈래 나무를 정해서 가장 작은 깊이를 찾아라.두 갈래 나무의 최소 깊이는 뿌리 노드에서 가장 가까운 잎 노드까지의 거리이다
예제
다음과 같은 두 갈래 나무를 제시한다.
1
/ \
2 3
/ \
4 5
이 두 갈래 나무의 최소 깊이는 2이다
코드
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution {
/*
* @param root: The root of binary tree
* @return: An integer
*/
public int minDepth(TreeNode root) {
int mindepth = helper(root);
return mindepth;
}
private int helper(TreeNode root) {
if (root == null) {
return 0;
}
int leftMinDepth = helper(root.left);
int rightMinDepth = helper(root.right);
//
// 0, , 1
if (leftMinDepth == 0 || rightMinDepth == 0) {
return Math.max(leftMinDepth, rightMinDepth) + 1;
}
int min_depth = Math.min(leftMinDepth, rightMinDepth) + 1;
return min_depth;
}
}
public class Solution {
/*
* @param root: The root of binary tree
* @return: An integer
*/
private int depth = Integer.MAX_VALUE;
public int minDepth(TreeNode root) {
if (root == null) {
return 0;
}
traversal(root, 1);
return depth;
}
private void traversal(TreeNode node, int curDepth) {
// ,
if (node == null) {
return;
}
if (node.left == null && node.right == null) {
if (curDepth < depth) {
depth = curDepth;
}
}
traversal(node.left, curDepth + 1);
traversal(node.right, curDepth + 1);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.