二叉树的深度
题目描述:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
题目链接:二叉树的深度
解题思路:
可以将本题理解为求树的层序遍历,通过层序的方法去计数深度
1.通过队列,对二叉树进行层序遍历
2.在层序的过程中,每当一层完成遍历时,层数加一
3.通过size()可以得到该层的入队的个数,通过该个数去判断是否完成出队
代码展示:
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.Queue;
import java.util.LinkedList;
public class Solution {
public int TreeDepth(TreeNode root) {
if(root == null){ //判断是否有效输入
return 0;
}
Queue<TreeNode> list = new LinkedList<>();
list.offer(root);
int deepth = 0;
while(!list.isEmpty()){ //层序遍历
int size = list.size();
deepth++;
for(int i = 0;i<size;i++){ //保证该层节点完成了出队
TreeNode father = list.poll();
if(father.left!=null){
list.offer(father.left);
}
if(father.right!=null){
list.offer(father.right);
}
}
}
return deepth;
}
}