首页 > 其他分享 >Leecode104 二叉树的最大深度

Leecode104 二叉树的最大深度

时间:2022-10-10 19:45:58浏览次数:54  
标签:node right TreeNode val int Leecode104 二叉树 深度 left

//DFS解法 前序遍历
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null) {
            return 0;
        }
        int rightDepth = maxDepth(root.right);
        int leftDepth = maxDepth(root.left);
        return 1  + max(rightDepth,leftDepth);
    }
    public int max(int rightDepth, int leftDepth) {
        return rightDepth > leftDepth ? rightDepth :leftDepth;
    }
}

//BFS解法 层次遍历
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxDepth(TreeNode root) {
      if(root == null) {return 0;}
      Queue<TreeNode> que = new LinkedList<>();
      que.offer(root);
      int depth = 0;
      while (!que.isEmpty()){
          int len  = que.size();
          depth ++;
          for (int i = 0; i < len; i++) {
              TreeNode node = que.poll();
              if(node.left != null) {
                  que.offer(node.left);
              }
              if(node.right != null) {
                  que.offer(node.right);
              }
          }
      }
      return depth;
    }
}

 

标签:node,right,TreeNode,val,int,Leecode104,二叉树,深度,left
From: https://www.cnblogs.com/noedaydayup/p/16776908.html

相关文章

  • word2vec 论文讲解 - b站深度之眼
    https://www.bilibili.com/video/BV1A7411u7zh?p=4&vd_source=db1f7cb82e86cfc9050cdc20ec10c8ab前置知识one-hotSVD(SingularValueDecomposition)奇异值分解Distrib......
  • 图像的深度信息提取
    %*******************************************************************%RegionBasedStereoMatchingAlgorithmbyGlobalErrorEnergy%MinimizationbySmoothing......
  • 【yolov4】基于yolov4深度学习网络目标检测MATLAB仿真
        YOLO发展至YOLOv3时,基本上这个系列都达到了一个高潮阶段,很多实际任务中,都会见到YOLOv3的身上,而对于较为简单和场景,比如没有太密集的目标和极端小的目标,多数时候......
  • 深度学习/机器视觉/数字IC/FPGA/算法手撕代码目录总汇
    目录​​FPGA/数字IC手撕代码总汇​​​​常用算法手撕代码总汇​​​​FPGA工程师经典面试题​​​​数字IC经典面试题​​​​深度学习/人工智能/机器学习面试题​​​​......
  • Matlab R2015b+CUDA7.5+vs2013深度学习网络GPU搭建
    传统的跟踪算法大多从物体的外观出发,只能在线学习,从当前的视频中在线抓取数据进行学习跟踪的算法,如:TLD、Struck、KCF,这类算法必须足够简单才行,否则耗时严重。当然现在也有人......
  • 深度探讨react-hooks实现原理
    reacthooks实现Hooks解决了什么问题在React的设计哲学中,简单的来说可以用下面这条公式来表示:UI=f(data)等号的左边时UI代表的最终画出来的界面;等号的右边是......
  • CVPR2021深度框架训练 | 不是所有数据增强都可以提升最终精度
    “计算机视觉研究院”计算机视觉研究院专栏作者:Edison_G数据增强(DA)是训练最先进的深度学习系统的必要技术。在今天分享中,实证地表明数据增强可能会引入噪声增强的例子,从而......
  • 深度学习的昨天、今天和明天
    计算机视觉研究院专栏作者:Edison_G人脸领域的技术一直是热门研究话题,随着优秀算法和先进芯片的进一步成熟,各厂家集成能力的提升,人脸识别技术必将是未来人工智能社会的先驱。......
  • React生命周期深度完全解读
    在React中,对于每一次由状态改变导致页面视图的改变,都会经历两个阶段:render阶段、commit阶段。只有class组件才有生命周期,因为class组件会创建对应的实例,而函数组......
  • leetcode 236. Lowest Common Ancestor of a Binary Tree 二叉树的最近公共祖先(中等)
    一、题目大意给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满......