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


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;
}
}




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com