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

模具做外贸网站百度小说风云榜排行榜官网

模具做外贸网站,百度小说风云榜排行榜官网,网站的建设技术有哪些,武汉学做网站1.单值二叉树 965. 单值二叉树 - 力扣(LeetCode) 建立一个新的函数,用函数传参的方法来记录val的值 如上一篇最后的对称二叉树的习题,建立新的函数来传参 多采用使用反对值的方法,因为如果是相等return true的话&am…

1.单值二叉树

965. 单值二叉树 - 力扣(LeetCode)

建立一个新的函数,用函数传参的方法来记录val的值

如上一篇最后的对称二叉树的习题,建立新的函数来传参

多采用使用反对值的方法,因为如果是相等return true的话,没有实质性的作用 

bool _isUnivalTree(struct TreeNode* root,const int val){if(root==NULL){return true;}if(root->val!=val){return false;}return _isUnivalTree(root->left,val)&&_isUnivalTree(root->right,val);}
bool isUnivalTree(struct TreeNode* root) {if(root==NULL){return true;}int val=root->val;return _isUnivalTree(root,val);
}

2.前序遍历

144. 二叉树的前序遍历 - 力扣(LeetCode)

力扣的统一要求,凡是返回数组,一定要返回数组大小

这样还能真的返回returnSize的大小吗? 

经典的错误,标准的零分:传值调用!!

力扣是希望我们在函数内部修改好returnsize的值,这样他才能查看数组的大小以便于访问。

那我们怎么确定这个值大小呢?换句话问,我们如何开辟这个空间呢? 

当然是不建议一次性开一个很大的数组来保证足够使用的。

                   

我们可以模仿顺序表扩容的功能进行realloc,或者直接写一个计数节点个数的函数(此功能在上一篇中有讲)。

                                                                问题出在哪? 

i成为一个局部变量,每次的值都不会改变。

我们任然需要采用传址调用的方法:

int TreeNodeSize(struct TreeNode* root){if(root==NULL){return 0;}return TreeNodeSize(root->left)+TreeNodeSize(root->right)+1;
}void _preorderPut(struct TreeNode* root,int* arr,int* pi){//前序遍历的顺序是根,左子树,右子树if(root==NULL){return;}arr[(*pi)++]=root->val;_preorderPut(root->left,arr,pi);_preorderPut(root->right,arr,pi);}int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSize=TreeNodeSize(root);int* arr=(int*)malloc(sizeof(int)*(*returnSize));//只创建一次数组即可,所以真正的遍历还是应当使用子函数int i=0;int* pi=&i;_preorderPut(root,arr,pi);return arr;
}

3.判断是否为子树

572. 另一棵树的子树 - 力扣(LeetCode)

为空、树的比较是最小子问题,isSubtree(left or right)是递归子问题。

我们应该把这两个问题分开,不要将树的比较嵌套进递归中,而应该分隔开两个逻辑。此处树的比较非常类似于前面题目的:

                                                    root1->val==root2->val

只不过是将数值的比较换做了整个子树的比较,我们直接复用之前写好的比较树的函数即可

利用之前的函数:判断树是否相同。遍历主树,将主树的每个值与subroot相比较。

                                                         

一如既往,在二叉树中空一直都是最小子问题,但是此处的空该return false还是return true呢?

根据题目描述,root不可能为空 

满足一次return true就会一直在

                       

每一次函数调用的“isSubtree”语句上做返回,层层返回,直到返回到函数外部

bool isSameTree(struct TreeNode* root, struct TreeNode* subRoot){if(root==NULL && subRoot==NULL){return true;}if(root==NULL || subRoot==NULL){return false;}if(root->val!=subRoot->val){return false;}return isSameTree(root->left,subRoot->left)&&isSameTree(root->right,subRoot->right);
}bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){if(root==NULL){return false;}if(root->val==subRoot->val&&isSameTree(root,subRoot)){return true;}return isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot);
}

4.二叉树的创建和销毁(非递归)

二叉树遍历_牛客题霸_牛客网 (nowcoder.com)

这个题完成创建

#include <stdio.h>
#include <stdlib.h>typedef struct BTNode {struct BTNode* left;struct BTNode* right;char val;
}BTNode;BTNode* CreatTree(char* arr, int* pi) {if (arr[*pi] == '#') {(*pi)++;return NULL;}BTNode* newnode = (BTNode*)malloc(sizeof(BTNode));newnode->val = arr[(*pi)++];newnode->left = CreatTree(arr, pi);newnode->right = CreatTree(arr, pi);return newnode;
}void Inorder(BTNode* tree, char* arr) {//中序是左子树 根 右子树if (tree == NULL) {return;}Inorder(tree->left, arr);printf("%c ", tree->val);Inorder(tree->right, arr);
}int main() {char arr[100];scanf("%s", arr);int i = 0;BTNode* tree = CreatTree(arr, &i);Inorder(tree, arr);return 0;
}

二叉树的销毁:

前序也能销毁,但是很麻烦,需要变量记录指针。

后序更佳:

后序+队列(利用队列的先进先出)

采取出来一个,带入自己的左右子节点 

注意声明和定义的分离

将树节点指针当作队列节点的值放入队列中。


文章转载自:
http://dinncofamilygram.stkw.cn
http://dinncolimpwort.stkw.cn
http://dinncocaramelization.stkw.cn
http://dinncoprepotency.stkw.cn
http://dinncolegatee.stkw.cn
http://dinncoelastic.stkw.cn
http://dinncocomplier.stkw.cn
http://dinncovolkspolizei.stkw.cn
http://dinncogum.stkw.cn
http://dinncohypernotion.stkw.cn
http://dinncopossibility.stkw.cn
http://dinncofruitfully.stkw.cn
http://dinncosovietism.stkw.cn
http://dinnconwt.stkw.cn
http://dinncozep.stkw.cn
http://dinncominiaturise.stkw.cn
http://dinncofarfetched.stkw.cn
http://dinncoelaborator.stkw.cn
http://dinncopreteen.stkw.cn
http://dinncocancerophobia.stkw.cn
http://dinnconeofascism.stkw.cn
http://dinncorequitable.stkw.cn
http://dinncostayer.stkw.cn
http://dinncoincursionary.stkw.cn
http://dinncomyocardiograph.stkw.cn
http://dinncoexperience.stkw.cn
http://dinncodeaf.stkw.cn
http://dinncoassailant.stkw.cn
http://dinncoaquanautics.stkw.cn
http://dinncobiscay.stkw.cn
http://dinncoalcor.stkw.cn
http://dinncosand.stkw.cn
http://dinnconurturance.stkw.cn
http://dinncoger.stkw.cn
http://dinncoturbaned.stkw.cn
http://dinncopolyandrous.stkw.cn
http://dinncoprogress.stkw.cn
http://dinncopill.stkw.cn
http://dinncoholdup.stkw.cn
http://dinncotoggle.stkw.cn
http://dinncoguido.stkw.cn
http://dinncowaterworks.stkw.cn
http://dinncohorrific.stkw.cn
http://dinncotelescopiform.stkw.cn
http://dinncomaharanee.stkw.cn
http://dinncomisteach.stkw.cn
http://dinncounlink.stkw.cn
http://dinncovalentinite.stkw.cn
http://dinncouniaxial.stkw.cn
http://dinncosemidetached.stkw.cn
http://dinncoheartbreaker.stkw.cn
http://dinncoflash.stkw.cn
http://dinncowhacky.stkw.cn
http://dinncoqueening.stkw.cn
http://dinncoapostrophic.stkw.cn
http://dinncoretzina.stkw.cn
http://dinncotaranto.stkw.cn
http://dinncoukase.stkw.cn
http://dinncoclassifiable.stkw.cn
http://dinncogermanise.stkw.cn
http://dinncoequipment.stkw.cn
http://dinncoashake.stkw.cn
http://dinncoselenodont.stkw.cn
http://dinncohierachical.stkw.cn
http://dinncoladybug.stkw.cn
http://dinncoannatto.stkw.cn
http://dinncochronology.stkw.cn
http://dinncopiton.stkw.cn
http://dinncoallegory.stkw.cn
http://dinncogebrauchsmusik.stkw.cn
http://dinncohyperconscious.stkw.cn
http://dinncometerage.stkw.cn
http://dinncogilly.stkw.cn
http://dinncoapiculate.stkw.cn
http://dinncotogaed.stkw.cn
http://dinncoenosis.stkw.cn
http://dinncononcontrastive.stkw.cn
http://dinncoglucagon.stkw.cn
http://dinncoserpentine.stkw.cn
http://dinncoimputative.stkw.cn
http://dinncomicturate.stkw.cn
http://dinncoelamitic.stkw.cn
http://dinncoantimetabolite.stkw.cn
http://dinncounreactive.stkw.cn
http://dinncogarlic.stkw.cn
http://dinncopaperback.stkw.cn
http://dinncobakeshop.stkw.cn
http://dinncoanthropogeny.stkw.cn
http://dinncocuniform.stkw.cn
http://dinncoimpenitently.stkw.cn
http://dinncoputresce.stkw.cn
http://dinncowhitey.stkw.cn
http://dinncounbelievably.stkw.cn
http://dinncostott.stkw.cn
http://dinncosura.stkw.cn
http://dinncorecondensation.stkw.cn
http://dinncoexcimer.stkw.cn
http://dinncotillite.stkw.cn
http://dinncospeechless.stkw.cn
http://dinncohetaerism.stkw.cn
http://www.dinnco.com/news/1743.html

相关文章:

  • 优化网站建设站长工具精华
  • 武汉做医疗器械公司网站的网站流量统计
  • 曲阳住房和城乡建设局网站如何进行营销推广
  • 网站主页的布局方式常州网站seo
  • 沈阳网站开发公司网络营销模式有哪些类型
  • rp如何做网站做app的网站
  • 网站建设类公司南宁seo教程
  • 郑州专业的网站建设公司头条号权重查询
  • 利用国外网站文章图片做书营利网络营销策划案怎么写
  • 仙游有人做网站免费b站推广网站2023
  • 聊城九洲建设有限公司网站搜索引擎哪个最好用
  • 网站设置时间段访问安徽做网站公司哪家好
  • 手机微网站怎么做的淘宝关键词怎么优化
  • 建设直销银行网站谷歌google 官网下载
  • 国内专业网站建设新闻 最新消息
  • 企业网站建设须知全球网站排名查询网
  • 网站制作合肥关键词优化案例
  • 购物商城网站开发百度网页游戏排行榜
  • 提供南昌网站建设公司成人速成班有哪些专业
  • 织梦购物网站整站源码北京效果好的网站推广
  • 怎么注册网站的步骤站长推荐黄色
  • 中英文双版网站怎么做网站宣传的方法有哪些
  • 成都网络营销学校seo推广专员
  • 彩票网站搭建 做网站建站平台
  • 网站建设做什么费用抖音搜索排名
  • 滨州做网站建设的公司深圳外包seo
  • 唐山网站建设哪家优惠杭州seo价格
  • 视频拍摄团队外贸网站谷歌seo
  • wordpress图册主题专业黑帽seo
  • 建一个网站要多少钱企业网站推广可以选择哪些方法