二叉树的最小深度
2016-11-03 15:16
190 查看
给定一个二叉树,找出其最小深度。
二叉树的最小深度为根节点到最近叶子节点的距离。
样例
给出一棵如下的二叉树:
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) {
// write your code here
if(root==null)
return 0;
if(root.left==null && root.right==null)
return 1;
int dep1=minDepth(root.left)+1;
int dep2=minDepth(root.right)+1;
if(dep1==1)//左空右不空
dep1=Integer.MAX_VALUE;
if(dep2==1)
dep2=Integer.MAX_VALUE;
if(dep1>dep2)
return dep2;
return dep1;
}
}
//网上学习的方法
public class Solution {
public int minDepth(TreeNode root) {
if(root == null) return 0;
if(root.left == null)return minDepth(root.right) + 1;
if(root.right == null) return minDepth(root.left) + 1;
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}
}
二叉树的最小深度为根节点到最近叶子节点的距离。
样例
给出一棵如下的二叉树:
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) {
// write your code here
if(root==null)
return 0;
if(root.left==null && root.right==null)
return 1;
int dep1=minDepth(root.left)+1;
int dep2=minDepth(root.right)+1;
if(dep1==1)//左空右不空
dep1=Integer.MAX_VALUE;
if(dep2==1)
dep2=Integer.MAX_VALUE;
if(dep1>dep2)
return dep2;
return dep1;
}
}
//网上学习的方法
public class Solution {
public int minDepth(TreeNode root) {
if(root == null) return 0;
if(root.left == null)return minDepth(root.right) + 1;
if(root.right == null) return minDepth(root.left) + 1;
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}
}
相关文章推荐
- 二叉树的最小深度
- 二叉树的最小深度
- Minimum Depth of Binary Tree -- 二叉树的最小深度 DFS 加剪枝
- 二叉树的最小深度(递归)
- 二叉树的最小深度
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 二叉树的最小深度
- LeetCode 二叉树的最小深度
- 《剑指offer》求二叉树的最小深度(非递归法)
- LeetCode Minimum Depth of Binary Tree 最小深度二叉树
- 求二叉树的最小深度
- 求二叉树的最小深度 Minimum Depth of Binary Tree
- lintcode(E) 二叉树最小深度
- lintcode——二叉树的最小深度
- 二叉树的最大深度与最小深度
- 二叉树的最小深度
- 二叉树的最小深度
- 计算二叉树的最小深度。最小深度定义为从root到叶子节点的最小路径。
- 二叉树的最大深度与最小深度
- LeetCode 二叉树的最小深度