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

企业网站适合响应式嘛移动互联网服务管理中心

企业网站适合响应式嘛,移动互联网服务管理中心,公司网站费用,手机网站 触屏链式二叉树OJ题 一、单值二叉树#xff08;1#xff09;题目描述#xff1a;#xff08;2#xff09;思路表述#xff1a;#xff08;3#xff09;代码实现#xff1a; 二、二叉树最大深度#xff08;1#xff09;题目描述#xff1a;#xff08;2#xff09;思路… 链式二叉树OJ题 一、单值二叉树1题目描述2思路表述3代码实现 二、二叉树最大深度1题目描述2思路表述3代码实现 三、检查两颗树是否相同1题目描述2思路表述3代码实现 四、二叉树的前序遍历1题目描述2思路表述3代码实现 五、翻转二叉树1题目描述2思路表述3代码实现 六、另一颗树的子树1题目描述2思路表述3代码实现 七、二叉树的构建及遍历1题目描述2思路表述3代码实现 一、单值二叉树 1题目描述 点击链接 2思路表述 如果传回来是空节点那么就返回真。如果传过来只有一个节点那么我们也返回真首先我们应该先判断不相等的因为相等的他肯定要递归嘛最值得注意的是你得先判断这个左/右子树它存在不存在只有左/右子树存在了才能判断左/右子树中的值跟它的根节点是否相等。如果左子树不存在我们都不需要判断它如果左子树不存在我们就直接访问空了这样会报错的。如果以上的三种情况都不符合的话我们就继续递归往下走。 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isUnivalTree(struct TreeNode* root) {//1.如果传回来是空节点那么就返回真。if(rootNULL){return true;}//2.如果传过来只有一个节点那么我们也返回真if(root-leftNULLroot-rightNULL){return true;}//3.首先我们应该先判断不相等的因为相等的他肯定要递归嘛//最值得注意的是你得先判断这个左/右子树它存在不存在只有左/右子树存在了才能判断左/右子树中的值跟它的根节点是否相等。如果左子树不存在我们都不需要判断它如果左子树不存在我们就直接访问空了这样会报错的。if(root-leftroot-left-val!root-val){return false;}else if(root-rightroot-right-val!root-val){return false;}//4.如果以上的三种情况都不符合的话我们就继续递归往下走。return isUnivalTree(root-left)isUnivalTree(root-right);}二、二叉树最大深度 1题目描述 点击链接 2思路表述 从根开始分别遍历左子树和右子树取最大的就是整个树的最大深度 递归展开图理解 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int maxDepth(struct TreeNode* root) {if(rootNULL){return 0;}return fmax(maxDepth(root-left),maxDepth(root-right))1; }三、检查两颗树是否相同 1题目描述 点击链接 2思路表述 1.如果两个二叉树都为空则两个二叉树相同。 2.如果两个二叉树中有且只有一个为空则两个二叉树一定不相同。 3.如果两个二叉树都不为空那么首先判断它们的根节点的值是否相同若不相同则两个二叉树一定不同若相同再分别判断两个二叉树的左子树是否相同以及右子树是否相同。这是一个递归的过程因此可以使用深度优先搜索递归地判断两个二叉树是否相同。 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//两个都为空if(pNULLqNULL){return true;}//一个为空,一个不为空if(pNULL||qNULL)//if((pNULLq!NULL)||(p!NULLqNULL)){return false;}//两个都不为空//1.先判断不相等if(p-val!q-val){return false;}//2.如果相等return isSameTree(p-left,q-left)isSameTree(p-right,q-right);}四、二叉树的前序遍历 1题目描述 点击链接 2思路表述 创建一个刚好满足所有储存树的结点的数组空间大小以前序的方式把树中的结点依次放入数组中 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned array must be malloced, assume caller calls free().*/int TreeSize(struct TreeNode* root) {return rootNULL?0:TreeSize(root-left)TreeSize(root-right)1; }void Prevorder(struct TreeNode* root,int* arr,int* i) {if(rootNULL){return;}arr[(*i)]root-val;Prevorder(root-left,arr,i);Prevorder(root-right,arr,i); }int* preorderTraversal(struct TreeNode* root, int* returnSize) {//1.创建一个刚好满足所有储存树的结点的数组空间大小int nTreeSize(root);int* arr(int*)malloc(sizeof(int)*n);int i0;//2.以前序的方式把树中的结点依次放入数组中Prevorder(root,arr,i);*returnSizen;return arr; }五、翻转二叉树 1题目描述 点击链接 2思路表述 我们从根节点开始递归地对树进行遍历并从叶子节点先开始翻转一直遍历到树的的叶子节点如果当前遍历到的节点 root 的左右两棵子树都已经翻转那么我们只需要交换两棵子树的位置即可完成以 root 为根节点的整棵子树的翻转。 不理解的时候就画递归展开图就行 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*//*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*///不理解的时候就画递归展开图就行 struct TreeNode* invertTree(struct TreeNode* root) {if(rootNULL){return NULL;}//我们从根节点开始递归地对树进行遍历并从叶子节点先开始翻转struct TreeNode* leftinvertTree(root-left);//一直遍历到树的的叶子节点struct TreeNode* rightinvertTree(root-right);root-leftright;root-rightleft;//如果当前遍历到的节点 root 的左右两棵子树都已经翻转那么我们只需要交换两棵子树的位置即可完成以 root 为根节点的整棵子树的翻转。return root;}六、另一颗树的子树 1题目描述 点击链接 2思路表述 如果root为NULL我们就返回空NULL 首先我们先判断刚开始的root和subroot的根相不相等如果相等然后再判断是否是相同的树 如果刚开始root-val!subroot-val不要着急!继续遍历root的左右子树 3代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//两个都为空if(pNULLqNULL){return true;}//一个为空,一个不为空if(pNULL||qNULL)//if((pNULLq!NULL)||(p!NULLqNULL)){return false;}//两个都不为空//1.先判断不相等if(p-val!q-val){return false;}//2.如果相等return isSameTree(p-left,q-left)isSameTree(p-right,q-right);}bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot) {if(rootNULL){return false;}//2.首先我们先判断刚开始的root和subroot的根相不相等如果相等然后再判断是否是相同的树if(root-valsubRoot-val){if(isSameTree(root,subRoot)){return true;}//return isSameTree(root,subRoot);不能这样写因为如果这样写的话,可能root的下面可能有子树和传过来的subroot是相同的树//但是你没有判断直接return返回了这样就有所欠缺!}//3.如果刚开始root-val!subroot-val不要着急!继续遍历root的左右子树return isSubtree(root-left,subRoot)||isSubtree(root-right,subRoot);}七、二叉树的构建及遍历 1题目描述 点击链接 2思路表述 读入字符串创建二叉树中序打印二叉树 3代码实现 #include stdio.h #include stdlib.h typedef struct TreeNode {char val;struct TreeNode* left;struct TreeNode* right; }TreeNode;//MakeTree函数的意义在于将数组中的数据以前序的方式创建一棵树 TreeNode* MakeTree(char* arr,int* n) {if((arr[*n]#)||(arr[*n]\0)){return NULL;}//我要将数组中的数据放入树中的前提是我要先创造一个树。TreeNode* newtree(TreeNode*)malloc(sizeof(TreeNode));newtree-valarr[(*n)];//newtree-leftMakeTree(arr,(*n));newtree-leftMakeTree(arr,n);(*n);newtree-rightMakeTree(arr,n);return newtree; }void InOrder(TreeNode* tree) {if(treeNULL){return ;}InOrder(tree-left);printf(%c ,tree-val);InOrder(tree-right); }int main() {//int n 0;//TreeSize(n);//int* arr (int*)malloc(sizeof(int) * n);//scanf(%s, arr);char arr[101];scanf(%s,arr);int n0;//创建一个n,作为一个我创建树的时候的一个标记指针如果遇到空或者结尾的时候会返回TreeNode* treeMakeTree(arr,n);InOrder(tree);return 0; }好了今天的分享就到这里了 如果对你有帮助记得点赞关注哦 我的主页还有其他文章欢迎学习指点。关注我让我们一起学习一起成长吧
http://www.zqtcl.cn/news/274276/

相关文章:

  • 宣传海报在什么网站做网站建设的能力
  • 温州网站优化优化课程设置
  • 企业推广网站有哪些做百度推广需要什么条件
  • 如何实现网站的快速排名怎么做网站模板
  • 数据型网站建设wordpress 阅读统计
  • a做爰网站集宁建设局网站
  • 黄山建设网站公司电话wordpress微信分享图
  • 大数据网站网站的备案流程图
  • 如果自己做网站wordpress付款插件
  • 网站建设项目的结论网站开发合同适用印花税
  • 网站建设经验与教训普陀网站建设推广
  • 12306网站是是阿里巴巴做的吗专业建网站设计公司
  • 关于申请网站建设经费的请示网推推荐信
  • 网站建设请款报告网站服务器租用价格
  • 贵州建设网老网站手机网站建设运营方案
  • 网站方案范文唐山自助建站模板
  • 金华网站制作网站建设的功能需求
  • 用iis建立网站口碑营销案例分析
  • 注册网站要求线上设计师与线下设计师的区别
  • 个人备案 网站内容网站备案如何查询
  • 宿州科技网站建设百度网站外链发布平台
  • 织梦移动网站wordpress父文章显示不全
  • 游戏攻略网站怎么做网站开发需求确认书
  • 做高大上分析的网站电商到底干嘛的
  • 物流网站哪个好网络推广就找南昌莫非传媒
  • 查看网站空间企业网站管理系统介绍
  • 重庆市工程建设信息网新网站艺术品商城网站开发
  • 上海网站制作商wordpress改主题
  • 钰鸣厦门网站建设2023热点新闻事件
  • 网络营销的主要形式有建设网站免费搭建网站哪个好