您的位置:首页 > 其它

LeetCode—二叉树的最大最小深度

2015-08-12 13:59 447 查看
1.二叉树的最大深度

这个题目就是求二叉树的高度,实现起来很容易。

代码如下:

/**
* 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 maxDepth(TreeNode root) {
if(root==null){
return 0;
}

return Math.max(maxDepth(root.left),maxDepth(root.right))+1;
}
}


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 height=0;
Queue<TreeNode> queue=new LinkedList<>();
if(root!=null){
queue.add(root);
height++;
while(queue.size()>0){
int size=queue.size();
for(int i=0;i<size;i++){
TreeNode t=queue.poll();
if(t.left==null&&t.right==null){
return height;
}
if(t.left!=null){
queue.add(t.left);
}
if(t.right!=null){
queue.add(t.right);
}
}
height++;
}
}
return height;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: