题解 | #二叉树的深度#
二叉树的深度
https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b
队列的思路:先进先出。从root节点开看,加载root节点进去,层数result++;将root出队列的时候将root的左右子树节点加进去,在遍历出队列,再将左右子树节点都加进去,如此一层一层地将节点加入出来,记录层数。
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.*;
public class Solution {
public int TreeDepth(TreeNode root) {
//null
if(root == null){
return 0;
}
//队列的写法是处理了一层再处理一层,记录层数
Queue<TreeNode> queue = new LinkedList<TreeNode>();
//将root节点加入队列
queue.offer(root);
//记录层数
int reslut = 0;
while (!queue.isEmpty()) {
for (int i = 0 ; i < queue.size(); i++) {
TreeNode cur = queue.poll();
if (cur.left != null) {
queue.offer(cur.left);
}
if (cur.right != null) {
queue.offer(cur.right);
}
}
reslut ++;
}
return reslut;
}
}
剑指offer刷题总结 文章被收录于专栏
本专栏是本人刷剑指offer的记录总结,也欢迎大家评论区留言讨论交流~
查看28道真题和解析