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

wap网站设计规范临沂市开发区可以做分销的网站

wap网站设计规范,临沂市开发区可以做分销的网站,医疗网站跳出率平均是多少,营销型网站管理方案目录 一、翻转二叉树 1.1 题目链接 1.2 题目描述 1.3 解题思路 二、二叉树最大深度 2.1 题目链接 2.2 题目描述 2.3 解题思路 三、二叉树中序遍历 3.1 题目链接 3.2 题目描述 3.3 解题思路 一、翻转二叉树 1.1 题目链接 翻转二叉树 1.2 题目描述 1.3 解题思路 根…

目录

一、翻转二叉树

1.1 题目链接

1.2 题目描述

1.3 解题思路

二、二叉树最大深度

2.1 题目链接

2.2 题目描述

2.3 解题思路

三、二叉树中序遍历

3.1 题目链接

3.2 题目描述

3.3 解题思路


一、翻转二叉树

1.1 题目链接

翻转二叉树

1.2 题目描述

1.3 解题思路

根据题目,很显然得出我们就只需要交换除了根的节点的左右孩子。我们这里采用递归解决问题,那么递归的结束条件又是什么呢?当该节点是空节点时就结束。思路就是这样,我们来动手实现一下。

 struct TreeNode 
{int val;struct TreeNode *left;struct TreeNode *right;
};struct TreeNode* invertTree(struct TreeNode* root) 
{if(root == NULL)return NULL;struct TreeNode* temp = root->left;root->left = root->right;root->right = temp;if(root->left)invertTree(root->left);if(root->right)invertTree(root->right);return root;
}

二、二叉树最大深度

2.1 题目链接

二叉树最大深度

2.2 题目描述

2.3 解题思路

在上面解决翻转二叉树问题时,我们就用到了递归。在解决二叉树的题目通常都会使用到递归,大家要好好的复习一下递归。我们把这颗二叉树拆解成根和左右子树,后面把左右子树也当作根来继续拆解,直到根为空节点时,就不再进行拆解。递归的结束条件就是根为空节点,因为是最大深度所以我们需要比较左右子树的高度,我们可以定义一个指针来计入高度(为什么用指针,因为要改变计数器要影响到外面,那为什么不用全局变量呢?全局变量比较麻烦),也可以采用另外一种。本人比较懒就采用了另外一种。

struct TreeNode 
{int val;struct TreeNode *left;struct TreeNode *right;
};int maxDepth(struct TreeNode* root) 
{if(root == NULL)return 0;int left = maxDepth(root->left);int right = maxDepth(root->right);return left > right? left+1:right+1;
}

三、二叉树中序遍历

3.1 题目链接

二叉树中序遍历

3.2 题目描述

3.3 解题思路

还是老样子采用递归来解决,首先我们要知道中序是什么,中序是先遍历 左子树、根、再到右子树,根据题目知道我们要返回遍历并且计入了中序顺序的二叉树。只有完全二叉树和满二叉树我们才会采用数组进行实现,一般情况我们都是采用链表的结构来实现二叉树,那我们就需要开辟空间了。我们就会存在一个问题应该开辟多少空间合适呢?可以和之前实现单向链表一样开辟一点点后续不够继续申请空间,这里我有一个不一样的方法那就是我们计算得到有多少个节点就开辟多少个空间。struct TreeNode* root, int* returnSize 题目给了我们两个参数其中一个是二叉树,那另外一个参数有什么用呢?,我感觉int* returnSize是类似一个计数的参数。因为要返回遍历并且计入了中序顺序的二叉树,所以我们可以定义一个数组来储存。那我们就需要封装成另外一个函数来实现了 void preorder(struct TreeNode* root, int* res ,int* returnSize)函数目的实现中序遍历后的储存数据。我们要好好的体会一下,中序遍历的写法 左子树 、根 、右子树。

计算二叉树节点个数:

int TreeSize(struct TreeNode* root)//计算二叉树节点个数
{return root == NULL ? 0 :TreeSize(root->left) + TreeSize(root->right) + 1;
}

实现中序遍历后的储存数据:

void preorder(struct TreeNode* root, int* res ,int* returnSize)
{if(root == NULL){return;}preorder(root->left, res ,returnSize);//左res[(*returnSize)++]=root->val;//根preorder(root->right, res ,returnSize);//右
}

 

void preorder(struct TreeNode* root, int* res ,int* returnSize)
{if(root == NULL){return;}preorder(root->left, res ,returnSize);//左res[(*returnSize)++]=root->val;//根preorder(root->right, res ,returnSize);//右
}int TreeSize(struct TreeNode* root)
{return root == NULL ? 0 :TreeSize(root->left) + TreeSize(root->right) + 1;
}int* inorderTraversal(struct TreeNode* root, int* returnSize) 
{int size = TreeSize(root);int* res = malloc(sizeof(int) * size);*returnSize = 0;preorder(root, res, returnSize);return res;
}

http://www.yayakq.cn/news/120282/

相关文章:

  • 柞水县住房和城乡建设局网站邯郸做紧固件网站
  • 手机自助建站系统如何创建网站详细步骤
  • 红酒公司网站源码北京高级网站建设
  • 有关网站开发的参考文献银川网站建设网络
  • WordPress多用户建站seo排名优化方法
  • wordpress如何添加网站地图可以做长页海报的网站
  • 办网站需要什么室内设计培训班多少钱
  • 莱芜装修网站去除wordpress版本号
  • 营销型网站建设新感觉建站wordpress登录循环
  • 云南网络公司网站建设网站建设公司推荐 知乎
  • wordpress建立视频网站手机app免费制作
  • 网站包括哪些内容吗顺德大良网站建设开发
  • 陕西住房和建设部网站网站seo 优化
  • 网站地图灰色效果的怎么做的网站开发z亿玛酷1流量订制
  • 上海建网站wordpress+做仿站
  • 网站自动提交收录谁会写网站代码
  • 网站布局设计排版洛阳便宜网站建设价格
  • 设计网站架构网站建设 国鸿
  • 宁波市建设工程监理协会网站青岛网站建设 新视点
  • 手机上建设网站建设直播网站需要哪些许可证
  • 网站每年都要备案吗网页平面设计培训
  • h5网站制作广州宣传片制作公司
  • 济南网站设计哪家好ps里怎么做网站
  • 网站制作过程流程wordpress搬家dz论坛
  • 电子 网站建设申请过程把代码到wordpress
  • 美轮美奂的网站建设网站怎么吸引流量
  • 网站链接跳转怎么做陕西省住房和建设厅官网
  • 网站ftp查询哪个网站能看到医生做的全部手术
  • 比较好约的网站设计自己能做app软件吗
  • 漫画风格网站哪里有手机网站建设联系方式