当前位置: 首页 > news >正文

郓城做网站开发网络新技术的平台

郓城做网站,开发网络新技术的平台,网站改版的前端流程,企业密信app下载安装一、二叉树最大深度 最大深度#xff1a;根节点到最远叶子节点的最长路径上的节点数。 可以使用迭代法和递归法#xff0c;以递归法为例#xff1a;还是以递归三要素为基准#xff0c;进行解决。 int maxDepth(struct TreeNode* root) {// struct TreeNode** NodeList …一、二叉树最大深度 最大深度根节点到最远叶子节点的最长路径上的节点数。 可以使用迭代法和递归法以递归法为例还是以递归三要素为基准进行解决。 int maxDepth(struct TreeNode* root) {// struct TreeNode** NodeList (struct NoTreeNodede**)malloc(sizeof(struct Node*) * 100000);// int queue_left 0, queue_right 0;//一个用于对头移动一个用于队尾 index// NodeList[queue_right] root;// int queue_size 0;// /**这个用来保存每层多少个value**/// int index 0;// int *returnSize index;// if(root NULL)// {// return NULL;// }// int depth 0;// while(queue_right queue_left)//队列不为空// {// queue_size queue_right - queue_left;//获取当前queue size// //printf(size is %d L%d, R%d\n, queue_size, queue_left, queue_right);// //struct Node* preNode (struct Node*)malloc(sizeof(struct Node));// while(queue_size 0)// {// /**需要保存当前节点**/// struct TreeNode* curNode NodeList[queue_left];// /**队列indx往前进一**/// queue_left;// /**该节点的左右子节点入队列***/// if(curNode-left)// NodeList[queue_right] curNode-left;// if(curNode-right)// NodeList[queue_right] curNode-right;// queue_size--;// }// depth;// //result[(*returnSize)] Arr;//多少行就多少个数组// }// return depth;//递归法if(root NULL)return 0;int len_left maxDepth(root-left);int len_right maxDepth(root-right);return 1 (len_left len_right? len_left : len_right); } 迭代法可参考上一篇。 二、二叉树最小深度 使用层序遍历的方式依旧可以解决参考上一篇博客。 递归法这里需要理清楚最小深度的定义特别这样的情况如果左子树或者右子树为空时候最小的深度不是止步在为空的节点处还是得看右边或者左边还有子树没有继续找。如果左子树为空右子树不为空说明最小深度是 1 右子树的深度。 /**最短距离的几种情况1 如果是满二叉树那么每个节点都有值那么深度就是最短的2 如果某一节点的子节点没有1左子节点没有2右子节点没有 3左右子节点没有**/ int minDepth(struct TreeNode* root) {// struct TreeNode** NodeList (struct NoTreeNodede**)malloc(sizeof(struct Node*) * 100000);// int queue_left 0, queue_right 0;//一个用于对头移动一个用于队尾 index// NodeList[queue_right] root;// int queue_size 0;// /**这个用来保存每层多少个value**/// int index 0;// int *returnSize index;// if(root NULL)// {// return 0;// }// int depth 0;// while(queue_right queue_left)//队列不为空// {// queue_size queue_right - queue_left;//获取当前queue size// //printf(size is %d L%d, R%d\n, queue_size, queue_left, queue_right);// //struct Node* preNode (struct Node*)malloc(sizeof(struct Node));// bool left_flg false;// bool right_flg false;// while(queue_size 0)// {// /**需要保存当前节点**/// struct TreeNode* curNode NodeList[queue_left];// left_flg false;// right_flg false;// /**队列indx往前进一**/// queue_left;// /**该节点的左右子节点入队列***/// if(curNode-left)// NodeList[queue_right] curNode-left;// else// left_flg true; // if(curNode-right)// NodeList[queue_right] curNode-right;// else// right_flg true;// if(left_flg right_flg)// {// break; // }// queue_size--;// }// depth;// //printf(depth %d\n, depth);// if(left_flg right_flg)// {// break; // }// }// return depth ;//递归法if(root NULL)return 0;int left_len minDepth(root-left);int right_len minDepth(root-right);//如果左子树不为空右子树空深度是左子树len 1if(root-left !root-right){return left_len 1;}if(!root-left root-right){return right_len 1;}return 1 (left_len right_len? left_len : right_len); } 三、完全二叉树的节点个数 递归法依然按照递归三要素进行解答 int countNodes(struct TreeNode* root) {//递归法if(root NULL){return 0;} int left_num countNodes(root-left);int right_num countNodes(root-right);return 1 left_num right_num; } 迭代法可以使用层次遍历的思路解答按照每一层遍历记录一个size ,每一层遍历结束后把每一层遍历结果相加。 int maxDepth(struct TreeNode* root) {struct TreeNode** NodeList (struct NoTreeNodede**)malloc(sizeof(struct Node*) * 100000);int queue_left 0, queue_right 0;//一个用于对头移动一个用于队尾 indexNodeList[queue_right] root;int queue_size 0;/**这个用来保存每层多少个value**/int index 0;int *returnSize index;if(root NULL){return NULL;}int depth 0;while(queue_right queue_left)//队列不为空{queue_size queue_right - queue_left;//获取当前queue size//printf(size is %d L%d, R%d\n, queue_size, queue_left, queue_right);//struct Node* preNode (struct Node*)malloc(sizeof(struct Node));while(queue_size 0){/**需要保存当前节点**/struct TreeNode* curNode NodeList[queue_left];/**队列indx往前进一**/queue_left;/**该节点的左右子节点入队列***/if(curNode-left)NodeList[queue_right] curNode-left;if(curNode-right)NodeList[queue_right] curNode-right;queue_size--;}depth;//result[(*returnSize)] Arr;//多少行就多少个数组}return depth; }
http://www.pierceye.com/news/540225/

相关文章:

  • 谷歌有做网站建设快速建站哪里好
  • 坤和建设 网站深圳高端网站设计开发
  • 怎么做网站策划的模板如何注册咨询公司
  • 做婚恋网站投入多少钱php注册网站源码带数据库
  • 苏州网站建设制作方案手机上做app的软件
  • 青岛营销型网站html网页制作期末作业
  • 加强网站微信公众号平台建设php 5.4 wordpress
  • 比价网站开发东莞微客巴巴做网站
  • 怎么免费搭建自己的网站交互网站建设
  • 网站架构 规划考研网站做刷词
  • 昆山网站建设kshuituo适合seo优化的站点
  • 免费十八种禁用网站圣诞网站怎么做
  • 做网站排名赚钱吗安卓开发快速入门
  • 南宁百度网站建设求个网站或者软件
  • 岳阳网站项目建设报道网站建设色调的
  • 站长平台怎么添加网站南京市高淳县建设厅网站
  • 广州市住房和城乡建设厅网站首页一键制作自己的app软件
  • 设一个网站链接为安全怎么做微博内容放到wordpress
  • 好的网站设计培训学校wordpress主题 表白
  • 做网站服务器系统模板网站的建设方式与方法
  • 网站建设需要的公司市住房城乡建设部网站
  • 网站备案 厦门怎样做自己的购物网站
  • 旅行社应做哪些网站wordpress新建页面发布内容
  • 网站建设业中国宁波网天一论坛
  • 代表网站开发的logo小程序制作推广费用
  • 建个大型网站要多少钱怎么建自己的网址
  • 网站建站模板做网站一般的尺寸
  • 西安网站设设学校品牌建设
  • 工信部网站备案查询做网站用的大图
  • 手机版网站图片自适应怎么做找快照网站查询