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

怎么恢复网站数据库天津公司网站建设

怎么恢复网站数据库,天津公司网站建设,app开发公司流程,wordpress菜单导航栏透明目录 1.知识回顾 2.题目 代码模板 3.分析 数组的初始化 malloc开辟的几种方案对比 奇怪的参数returnSize 做法 代码框架 4.代码 提交结果 5.PreOrder函数常见的错误写法 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.题目 https://leetcode.…目录 1.知识回顾 2.题目 代码模板 3.分析 数组的初始化 malloc开辟的几种方案对比 奇怪的参数returnSize 做法 代码框架 4.代码 提交结果  5.PreOrder函数常见的错误写法 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.题目 https://leetcode.cn/problems/binary-tree-preorder-traversal/ 给你二叉树的根节点 root 返回它节点值的 前序 遍历。 示例 1 输入root [1,null,2,3] 输出[1,2,3] 解释 示例 2 输入root [1,2,3,4,5,null,8,null,null,6,7,9] 输出[1,2,4,5,6,7,3,8,9] 解释 示例 3 输入root [] 输出[] 示例 4 输入root [1] 输出[1] 提示 树中节点数目在范围 [0, 100] 内-100 Node.val 100 进阶递归算法很简单你可以通过迭代算法完成吗 代码模板 /*** 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* preorderTraversal(struct TreeNode* root, int* returnSize) {} 3.分析 和106.【C语言】数据结构之二叉树的三种递归遍历方式文章有所不同,LeetCode函数的返回值为int*,即返回一个不带NULL的int数组 数组的初始化 注意不可以返回局部数组!就像下面这样 //...... int a[100]; return a; //...... 一旦离开preorderTraversal函数会被销毁,导致出现野指针,因此必须malloc在堆区开辟 而且LeetCode给出了提示 Note: The returned array must be malloced, assume caller calls free(). 这里不用担心free的问题,假设调用者调用了free()  malloc开辟的几种方案对比 方案1.LeetCode给出了提示树中节点数目在范围 [0, 100] 内,因此可以一次性开辟足够的空间 int* a (int*)malloc(100*sizeof(int));但可能会出现空间浪费的情况  方案2.先计算二叉树的大小(节点个数*每个节点所占的内存空间),再malloc 方案3.一开始开辟较小的空间,不够了再扩容 本文采用方案2,直接调用107.【C语言】数据结构之二叉树求总节点和第K层节点的个数文章的TreeSize函数 奇怪的参数returnSize 在int* preorderTraversal(struct TreeNode* root, int* returnSize)传了一个int*类型的参数returnSize, LeetCode规定返回数组时要不仅仅要求返回首元素的地址还要返回数组的大小returnSize 由于形参的改变不影响实参,因此需要传returnSize的地址,因此为int*类型的参数 做法 return a;之前先将数组的大小传给*returnSize 代码框架 int TreeSize(struct TreeNode* root) {return rootNULL ? 0 : TreeSize(root-left)TreeSize(root-right)1; }int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSizeTreeSize(root);int* a(int*)malloc(*returnSize*sizeof(int));//......//遍历并写入数组//......return a; } 4.代码 106.【C语言】数据结构之二叉树的三种递归遍历方式文章的PreOrder函数的代码 void PreOrder(BTNode* root) {//先判断是否为空树(叶节点的左节点和右节点均为空树)if (root NULL){printf(NULL );return;}//按根--左子树--右子树的顺序遍历printf(%d ,root-data);PreOrder(root-left);PreOrder(root-right); } 稍加改造上方PreOrder函数即可 void PreOrder(struct TreeNode* root,int* a,int* i) {if (rootNULL)return;//写入数组a[(*i)]root-val;PreOrder(root-left,a,i);PreOrder(root-right,a,i); }int TreeSize(struct TreeNode* root) {return rootNULL ? 0 : TreeSize(root-left)TreeSize(root-right)1; }int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSizeTreeSize(root);int* a(int*)malloc(*returnSize*sizeof(int));int i0;PreOrder(root,a,i);return a; } 提交结果  如果将代码的*returnSizeTreeSize(root);注释掉会报错 5.PreOrder函数常见的错误写法 void PreOrder(struct TreeNode* root,int* a,int i) {if (rootNULL)return;//写入数组a[i]root-val;PreOrder(root-left,a,i);PreOrder(root-right,a,i); }//省略TreeSize int* preorderTraversal(struct TreeNode* root, int* returnSize) {//前面内容省略PreOrder(root,a,0);//后面内容省略 } 运行结果:不完全通过 以下面这个用例分析 画递归展开图 由于CSDN会压缩图片画质,无损bmp图片(大小7.32M)链接见https://pan.baidu.com/s/1OIrE-cGvefJs_SFZ75w84w?pwdgq37 解决方法:1.传址调用 2.使用全局变量 备注:不建议使用全局变量,LeetCode有多个测试用例会反复调用函数,导致全局变量无法清零
http://www.hkea.cn/news/14416881/

相关文章:

  • 上海网站建设书生商友哪些网站是用织梦做的
  • 免费企业静态网站模板网站建设合同报价
  • 网站上传用什么软件做视频哎吆嗨网站建设
  • 企业网站管理源码网站建设项目怎么写
  • 南阳旅游网站建设现状学校部门网站建设
  • 给小学生做家教的网站企业年金怎么查询个人账户余额
  • 网站建设软件下载青岛快速建站模板
  • 免费空间访客领取网站汉语网站建设心得
  • asp access网站建设源代码杭州旅游团购网站建设
  • 重庆网站建设 渝icpwordpress 网址导航页
  • wordpress 企业主题下载seo优化的技巧
  • 在家用电脑做网站Wordpress python版
  • 网站开发人员是什么网上学学网站开发工程师
  • 网站建设和维护视频上海做seo
  • 国外优秀网站设计书签制作简单漂亮图片
  • 电商设计网站有哪些做网站的技术性说明
  • 网站中英切换实例做首图的网站
  • php网站开发模板小程序平台推广方案
  • 黄埔网站建设公司做网站文件下载
  • 站内搜索引擎喀什百度做网站多少钱
  • 网站怎么在工信部备案泰安新闻完整版
  • 做兼职上什么网站哈尔滨做企业网站
  • 中国网站 服务器好看网站
  • 网站建设公司海外网站表单制作
  • 做网站建设多少钱杭州app外包公司排名
  • 网站 空间 域名个人适合做什么网站
  • 网站建立连接不安全怎么解决网站备案不能访问
  • 导购网站一站式建站南充楼市
  • 建瓯做网站的公司移动端网站欣赏
  • 外贸网站faqwordpress主题预览插件