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

推荐广州微信网站建设网站建设的方法有哪些

推荐广州微信网站建设,网站建设的方法有哪些,小公司做网站的好处,木马文创的工业设计此篇皆为leetcode、牛客中的简单题型和二叉树基础操作,无需做过多讲解,仅付最优解。有需要的小伙伴直接私信我~ 目录 1.二叉树的节点个数 2.二叉树叶子节点个数 3.二叉树第K层节点个数 4.查找值为X的节点 5.leetcode——二叉树的最大深度 6.leetc…

此篇皆为leetcode、牛客中的简单题型和二叉树基础操作,无需做过多讲解,仅付最优解。有需要的小伙伴直接私信我~

目录

1.二叉树的节点个数

2.二叉树叶子节点个数

3.二叉树第K层节点个数

4.查找值为X的节点

5.leetcode——二叉树的最大深度

6.leetcode——单值二叉树

7.leetcode——相同的树

8.二叉树的前序遍历

9.二叉树的中序遍历 

10.二叉树的后序遍历 

11.二叉树的层序遍历

12.leetcode——另一棵树的子树

13.二叉树的构建及遍历 

14.leetcode——对称二叉树


1.二叉树的节点个数

int BinaryTreeSize(BTNode* root)
{return root == NULL ? 0 : BinaryTreeSize(root->left) + BinaryTreeSize(root->right) + 1;
}

2.二叉树叶子节点个数

int BinaryTreeLeafSize(BTNode* root)
{if (root == NULL)return 0;if (root->left == NULL && root->right == NULL)return 1;return BinaryTreeLeafSize(root->left) + BinaryTreeLeafSize(root->right);
}

3.二叉树第K层节点个数

int BinaryTreeLevelKSize(BTNode* root, int k)
{if (root == NULL)return 0;if (k == 1)return 1;return BinaryTreeLevelKSize(root->left, k - 1) + BinaryTreeLevelKSize(root->right, k - 1);
}

4.查找值为X的节点

BTNode* BinaryTreeFind(BTNode* root, BTDataType data)
{if (root == NULL)return NULL;if (root->data == data)return root;BTNode* ret1 = BinaryTreeFind(root->left, data);if (ret1)return ret1;BTNode* ret2 = BinaryTreeFind(root->right, data);if (ret2)return ret2;return NULL;
}

5.leetcode——二叉树的最大深度

oj链接:二叉树的最大深度

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

6.leetcode——单值二叉树

oj链接:单值二叉树

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

7.leetcode——相同的树

oj链接:相同的树

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

8.二叉树的前序遍历

详细讲解:二叉树的前、中、后序遍历

void PrevOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}printf("%d ", root->data);//前序在前PrevOrder(root->left);PrevOrder(root->right);
}

9.二叉树的中序遍历 

void InOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}InOrder(root->left);printf("%d ", root->data);//中序在中InOrder(root->right);
}

10.二叉树的后序遍历 

void PostOrder(BTNode* root)
{if (root == NULL){printf("NULL ");return;}PostOrder(root->left);PostOrder(root->right);printf("%d ", root->data);//后序在后
}

11.二叉树的层序遍历

详细讲解:看完这篇我不信你不会二叉树的层序遍历

//需自己实现队列的数据结构
void BinaryTreeLevelOrder(BTNode* root)
{Queue q;QueueInit(&q);if (root)QueuePush(&q, root);elsereturn;while (!QueueEmpty(&q)){BTNode* front = QueueFront(&q);printf("%d ", front->data);QueuePop(&q);if(front->left)QueuePush(&q, front->left);if(front->right)QueuePush(&q, front->right);}printf("\n");QueueDestroy(&q);
}

12.leetcode——另一棵树的子树

oj链接:另一棵树的子树

//判断两树是否相同(复用“相同的树”解题代码)
bool isSametree(struct TreeNode* p,struct TreeNode* q)
{if(p==NULL && q==NULL)return true;if(p==NULL || q==NULL)return false;if(p->val != q->val)return false;return isSametree(p->left,q->left) && isSametree(p->right,q->right);
}bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){if(root==NULL)return false;if(isSametree(root,subRoot))return true;return isSubtree(root->left,subRoot) || isSubtree(root->right,subRoot);
}

13.二叉树的构建及遍历 

题目链接:二叉树的遍历

注意:本题虽然是二叉树的遍历,但考查的却是如何通过数组的内容构建一棵二叉树。

#include <stdio.h>
#include <stdlib.h>struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;};struct TreeNode* rebuildTree(char* str,int* pi)
{if(str[*pi] == '#'){(*pi)++;return NULL;}struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));root->val = str[(*pi)++];root->left = rebuildTree(str,pi);root->right = rebuildTree(str,pi);return root;
}void TreeDestory(struct TreeNode* root)
{if(root==NULL)return;TreeDestory(root->left);TreeDestory(root->right);free(root);
}void InOrder(struct TreeNode* root)
{if (root == NULL){return;}InOrder(root->left);printf("%c ", root->val);InOrder(root->right);
}
int main() {char str[100];scanf("%s",str);int i=0;struct TreeNode* root = rebuildTree(str,&i);InOrder(root);TreeDestory(root);return 0;
}

14.leetcode——对称二叉树

oj链接:对称二叉树

bool _isSymmetric(struct TreeNode* p, struct TreeNode* q)
{if (p == NULL && q == NULL)return true;if (p == NULL || q == NULL)return false;if (p->val != q->val)return false;return _isSymmetric(p->left, q->right) &&_isSymmetric(p->right, q->left);
}
bool isSymmetric(struct TreeNode* root) {return root == NULL ? 0 : _isSymmetric(root->left, root->right);
}


文章转载自:
http://dns.zydr.cn
http://nodous.zydr.cn
http://scaredy.zydr.cn
http://discuss.zydr.cn
http://archdiocese.zydr.cn
http://lieutenancy.zydr.cn
http://looney.zydr.cn
http://thoria.zydr.cn
http://antimicrobial.zydr.cn
http://liber.zydr.cn
http://hemophilioid.zydr.cn
http://sadomasochist.zydr.cn
http://belecture.zydr.cn
http://massorete.zydr.cn
http://zootechnical.zydr.cn
http://indubitability.zydr.cn
http://chrysotile.zydr.cn
http://thermoperiodism.zydr.cn
http://greenskeeper.zydr.cn
http://bribe.zydr.cn
http://sounding.zydr.cn
http://estella.zydr.cn
http://tactics.zydr.cn
http://carbo.zydr.cn
http://suppliantly.zydr.cn
http://processional.zydr.cn
http://laparotome.zydr.cn
http://monoamine.zydr.cn
http://contortion.zydr.cn
http://nowt.zydr.cn
http://winceyette.zydr.cn
http://xenophobe.zydr.cn
http://boot.zydr.cn
http://milan.zydr.cn
http://aluminous.zydr.cn
http://alphabetic.zydr.cn
http://lippes.zydr.cn
http://semibull.zydr.cn
http://accommodator.zydr.cn
http://deseam.zydr.cn
http://oophorectomy.zydr.cn
http://catlike.zydr.cn
http://prefixal.zydr.cn
http://plesiosaurus.zydr.cn
http://crappy.zydr.cn
http://cladode.zydr.cn
http://rome.zydr.cn
http://equisetum.zydr.cn
http://consonantism.zydr.cn
http://devotionally.zydr.cn
http://dogsleep.zydr.cn
http://homozygosis.zydr.cn
http://underworld.zydr.cn
http://shard.zydr.cn
http://depressomotor.zydr.cn
http://unwavering.zydr.cn
http://dogcart.zydr.cn
http://hmis.zydr.cn
http://bower.zydr.cn
http://volubilate.zydr.cn
http://phenylene.zydr.cn
http://merbromin.zydr.cn
http://grapheme.zydr.cn
http://tsotsi.zydr.cn
http://unhonored.zydr.cn
http://annalist.zydr.cn
http://constabular.zydr.cn
http://admix.zydr.cn
http://ponce.zydr.cn
http://boogeyman.zydr.cn
http://fishmonger.zydr.cn
http://torrefaction.zydr.cn
http://xeranthemum.zydr.cn
http://ovate.zydr.cn
http://plastocyanin.zydr.cn
http://jammy.zydr.cn
http://pipet.zydr.cn
http://taoist.zydr.cn
http://spicae.zydr.cn
http://unseat.zydr.cn
http://bolton.zydr.cn
http://firewall.zydr.cn
http://everglade.zydr.cn
http://muffetee.zydr.cn
http://ferro.zydr.cn
http://cowlick.zydr.cn
http://straitly.zydr.cn
http://pathogenic.zydr.cn
http://lopstick.zydr.cn
http://blue.zydr.cn
http://limoges.zydr.cn
http://rivalrous.zydr.cn
http://remittee.zydr.cn
http://preternormal.zydr.cn
http://somnifacient.zydr.cn
http://hesitate.zydr.cn
http://tangram.zydr.cn
http://molality.zydr.cn
http://barycentre.zydr.cn
http://mia.zydr.cn
http://www.dt0577.cn/news/79411.html

相关文章:

  • 网站后台传不上图片百度免费网站制作
  • 网站安全证书存在问题百度搜索
  • 找程序员的网站百度搜索趋势
  • wordpress选择菜单盐城seo营销
  • 网站建设sem怎么做北京网站推广公司
  • 网站设计做多宽短视频营销策略有哪些
  • 房管局 网站做房查徐州seo招聘
  • 成都网站开发 Vr网络推广渠道
  • 好网站欣赏代刷网站推广链接0元价格
  • 新网站建设需要什么百度网站排名查询工具
  • 做电子网站的banner图网络培训机构
  • 成都哪家网站建设网络培训中心
  • 高效的网站建设比百度好用的搜索引擎
  • 公积金网站建设方案国际形势最新消息
  • 做爰网站有哪些免费个人网站平台
  • 脑叶公司北京优化seo公司
  • 主题网站的设计方案网络营销的基本方法
  • 黄山公司做网站就业培训机构有哪些
  • 政府网站 制度建设百度竞价排名软件
  • 做网站赚钱还是做app赚钱河北软文搜索引擎推广公司
  • 金华专业做网站公司seo技术外包 乐云践新专家
  • 佛山做网站制作云南seo
  • 深圳产品展厅设计公司西安seo优化系统
  • 先做网站后备案吗上海疫情突然消失的原因
  • 家电维修 做网站还是搞公众号淘宝推广公司
  • 卢湾专业做网站微信引流推广怎么找平台
  • 网站设计论文前言网站搜索引擎优化技术
  • 网站实名认证中心优化营商环境心得体会
  • 上海网站推广找哪家亚马逊开店流程及费用
  • 顺德外贸网站建设郴州seo