首页 > 编程语言 >代码随想录算法训练营第十四天| 104.二叉树的最大深度 (优先掌握递归) 111.二叉树的最小深度 (优先掌握递归) 222.完全二叉树的节点个数(优先掌握递归)

代码随想录算法训练营第十四天| 104.二叉树的最大深度 (优先掌握递归) 111.二叉树的最小深度 (优先掌握递归) 222.完全二叉树的节点个数(优先掌握递归)

时间:2023-06-22 10:34:10浏览次数:44  
标签:优先 递归 int cursor 二叉树 result

104.二叉树的最大深度 (优先掌握递归)

迭代法,上一篇已经讲过,只需要对每一层+1,这里重要些递归法

递归法注意:如果当前节点为NULL,返回0,不是NULL,那么就是 1+ max(right,left)

代码:

 1 void maxD_cursor(TreeNode* node, int& result)
 2 {
 3     if (!node) return;
 4 
 5     result += 1;
 6     int leftDepth = 0;
 7     int rightDepth = 0;
 8     maxD_cursor(node->left, leftDepth);
 9     maxD_cursor(node->right, rightDepth);
10 
11     result += leftDepth > rightDepth ? leftDepth : rightDepth;
12 }
13 
14 int maxDepth_cursor(TreeNode* root) {
15     int result = 0;
16     maxD_cursor(root, result);
17 
18     return result;
19 }

 

 

标签:优先,递归,int,cursor,二叉树,result
From: https://www.cnblogs.com/smartisn/p/17497546.html

相关文章

  • 交换二叉树
    #include<stdio.h>#include<stdlib.h>#include<malloc.h>typedefstructBTNode{ chardata; structBTNode*lchild; structBTNode*rchild;}*BiTree;voidcreateBiTree(BiTree*t){//此处补充代码,输入二叉树的先序遍历序列建立二叉树 chars;......
  • 20230314 3.2. 二叉树
    二叉树的定义二叉树T:一个有穷的结点集合。这个集合可以为空若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。二叉树具体五种基本形态:空二叉树;只有根结点的二叉树;只有根结点和左子树TL的二叉树;只有根结点和右子树TR的二叉树;具有根结点、左......
  • 时间序列转图像:符号递归图(Symbolic recurrence plots)(matlab版复现)
    符号递归图(Symbolicrecurrenceplots):是一种以为时间序列转图像技术,可用于平稳和非平稳数据集;对噪声具有鲁棒性,在一定的数据变换条件下具有不变性。结合深度学习技术可以解决能源电力,水利,天气,生物医学,交通等领域的复杂模式识别和监测任务。链接:https://mbd.pub/o/bread/mbd-ZJqY......
  • 代码随想录算法训练营第十三天| 层序遍历 226.翻转二叉树 (优先掌握递归) 101. 对
    层序遍历注意:1,使用队列的形式,依次入队,同时对队列进行计数2,知道数目消失,才进行下一个队列代码:1vector<vector<int>>levelOrder(TreeNode*root)2{3vector<vector<int>>result;4if(root==NULL)returnresult;5queue<TreeNode*>selected;6......
  • java递归创建目录
    importjava.io.File;publicclassCreateDirectory{publicstaticvoidmain(String[]args){Stringpath="D:\\heap\\d\\c\\e";createDirectory(path);}publicstaticvoidcreateDirectory(Stringpath){......
  • 数据结构和算法系列课程(01)--- 排序二叉树和红黑树
    把排序二叉树放在这个系列课程的第一个部分似乎有些唐突,但是考虑到它在面试中出现的可能性,把它放在这样的一个位置也就不足为奇了。关于树和二叉树的基础知识,可以到下面的链接中下载我的课件进行了解。下面给出一个排序二叉树的Java实现:packagcom.loonstudio;/***排序二叉树......
  • 优先队列和惰性队列
    1.优先队列1.1场景在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧,但是,tmall商家对我们来说,肯定是要分大客户和小客户的对吧,比如像苹果,小米这样大......
  • 【计算机算法设计与分析】线性时间选择(C++_分治递归)
    问题描述给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。思路线性时间选择有两种方法:(1)随机选择快排的标准元素。(2)将集合分为n个由五个元素组成的集合,对每个五元素集合求其中位数,再对所有的五元素集合的中位数求其中位数,作为快排的标准元素。CodeV-1(Ran......
  • 代码随想录算法训练营第十二天| 递归遍历 (必须掌握)迭代遍历 统一迭代
    递归遍历重点:1,TreeNode的自定义2,val=0== val=NULL;代码:1voidpreRecursor(TreeNode*root,vector<int>&result)2{3if(root==NULL)4return;5result.push_back(root->val);6preRecursor(root->left,result);7......
  • 数据结构代码整理_基于邻接表的拓扑排序(C++_DFS_BFS_递归)
    目录Chat图解基于栈实现(dfs)基于队列实现(bfs)基于递归实现(dfs)Chat1.代码所属的类在数据结构代码整理_基于邻接表存储结构的有向图的实现(C++)2.拓扑排序的思想就是不断找入度为0的节点并将其输出并标记,标记后与他相连的节点的入度都会减一,不断进行标记直至所有的节点都被输出为止......