• 二叉树之 二叉树深度


    // 获取最大深度
        public static int getMaxDepth(TreeNode root) {
            if (root == null)
                return 0;
            else {
                int left = getMaxDepth(root.left);
                int right = getMaxDepth(root.right);
                return 1 + Math.max(left, right);
            }
        }
    

     二叉树宽度:

    使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。以此类推,依次遍历下一层即可求出二叉树的最大宽度

    // 获取最大宽度
        public static int getMaxWidth(TreeNode root) {
            if (root == null)
                return 0;
    
            Queue<TreeNode> queue = new ArrayDeque<TreeNode>();
            int maxWitdth = 1; // 最大宽度
            queue.add(root); // 入队
    
            while (true) {
                int len = queue.size(); // 当前层的节点个数
                if (len == 0)
                    break;
                while (len > 0) {// 如果当前层,还有节点
                    TreeNode t = queue.poll();
                    len--;
                    if (t.left != null)
                        queue.add(t.left); // 下一层节点入队
                    if (t.right != null)
                        queue.add(t.right);// 下一层节点入队
                }
                maxWitdth = Math.max(maxWitdth, queue.size());
            }
            return maxWitdth;
        }
    
  • 相关阅读:
    第二阶段冲刺第九天
    第二阶段冲刺第八天
    第二阶段冲刺第七天
    第二阶段冲刺第六天
    第二阶段冲刺第五天
    第二阶段冲刺第四天
    第二阶段冲刺第三天
    java-小组项目-需求视频
    绩效评估方法
    各组对我们的意见汇总
  • 原文地址:https://www.cnblogs.com/toov5/p/8018462.html
Copyright © 2020-2023  润新知