题解 | #二叉树的深度#

二叉树的深度

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的记录总结,也欢迎大家评论区留言讨论交流~

全部评论

相关推荐

09-17 10:53
四川大学 C++
牛客91242815...:会写标书没有任何卵用,鉴定为横向垃圾导师的受害者
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务