LeetCode刷题笔记 Java 腾讯 排序搜索 二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [3,9,20,null,null,15,7],

LeetCode刷题笔记 Java 腾讯 排序搜索 二叉树的最大深度_第1张图片

广度优先遍历

放入根结点

循环

统计当前栈结点个数(即当前层结点的个数)

遍历当前层,并将子节点放入栈

每遍历一层ans++

class Solution {
    public int maxDepth(TreeNode root) {
        if(root==null){
            return 0;
        }
        Deque d=new LinkedList();
        int ans=0;
        d.offer(root);
        while(!d.isEmpty()){
            // 当前层的结点个数
            int size=d.size();
            // 遍历当前层 加入子节点
            while(size!=0){
                root=d.poll();
                if(root.left!=null)d.offer(root.left);
                if(root.right!=null)d.offer(root.right);
                size--;    
            }
            // 每遍历一层,深度+1
            ans++;
        }
        return ans;
    }
}

你可能感兴趣的:(LeetCode,java,leetcode,算法)