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

如何优化好一个网站自己做网站导航页

如何优化好一个网站,自己做网站导航页,室内设计师排名,wordpress主题 windows live一、摘要 今天要讲的是leetcode单值二叉树#xff0c;这里用到的C语言#xff0c;主要提供的是思路#xff0c;大家看了我的思路之后可以点击链接自己试一下。 二、题目简介 如果二叉树每个节点都具有相同的值#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单…一、摘要 今天要讲的是leetcode单值二叉树这里用到的C语言主要提供的是思路大家看了我的思路之后可以点击链接自己试一下。 二、题目简介 如果二叉树每个节点都具有相同的值那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时才返回 true否则返回 false。 示例 1 输入[1,1,1,1,1,null,1] 输出true示例 2 输入[2,2,2,5,2] 输出false提示 给定树的节点数范围是 [1, 100]。每个节点的值都是整数范围为 [0, 99] 。 三、思路分析 思路一递归 当我们看到这道题目时一个直观的想法是通过递归遍历二叉树来解决问题。在遍历过程中我们需要将每个节点的值与根节点的值进行比对。如果所有节点的值都与根节点一致那么返回 true否则返回 false。这种方法与递归实现二叉树的前序、中序或后序遍历有一定的相似性。因此我们需要注意二叉树的结构特性确保在遍历过程中左子树和右子树都被完整地访问到。这是解决这道题的一个常见思路。 接下来我将通过代码来展示这个思路的实现。 代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/bool isUnivalTree(struct TreeNode* root) {// 如果当前节点为空说明已经遍历到叶子节点的子节点返回 trueif (root NULL) {return true;}// 检查左子节点是否存在且其值是否与当前节点的值不同if (root-left root-left-val ! root-val) {return false;}// 检查右子节点是否存在且其值是否与当前节点的值不同if (root-right root-right-val ! root-val) {return false;}// 递归检查左子树和右子树return isUnivalTree(root-left) isUnivalTree(root-right); } 大家可以代入一个中途不相同值的二叉树进行递归展开这个递归比较简单很好理解。 思路二迭代 递归方法虽然简洁但在某些情况下可能会受到递归深度的限制尤其是对于非常深的二叉树。我们可以使用迭代法来避免递归的开销。 使用一个队列来存储待访问的节点。 从根节点开始将根节点的值作为目标值。 遍历队列中的每个节点检查其值是否与目标值一致。 如果发现任意一个节点的值与目标值不同直接返回 false。 如果所有节点都通过检查最终返回 true。 代码实现 #include stdbool.h #include stdlib.h/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/bool isUnivalTree(struct TreeNode* root) {if (root NULL) return true; // 空树是单值二叉树int target root-val; // 目标值为根节点的值struct TreeNode* queue[100]; // 队列假设最多100个节点int front 0, rear 0;queue[rear] root; // 将根节点加入队列while (front rear) {struct TreeNode* node queue[front]; // 出队if (node-val ! target) return false; // 如果当前节点值与目标值不同直接返回false// 将左右子节点加入队列如果存在if (node-left) queue[rear] node-left;if (node-right) queue[rear] node-right;}return true; // 所有节点都通过检查返回true } 代码解释 队列初始化 使用一个数组 queue 作为队列存储待访问的节点。 使用两个指针 front 和 rear 分别表示队列的头部和尾部。 目标值 将根节点的值作为目标值 target所有节点的值都需要与它一致。 层次遍历 从根节点开始将其加入队列。 每次从队列中取出一个节点检查其值是否与目标值一致。 如果一致将其左右子节点如果存在加入队列。 如果发现任意一个节点的值与目标值不同直接返回 false。 结束条件 如果队列为空说明所有节点都已检查完毕返回 true。 优点 避免递归使用迭代法避免了递归的深度限制问题。 逻辑清晰层次遍历的逻辑直观容易理解和实现。 高效时间复杂度为 O(n)其中 n 是树的节点数。 其实这道题思路和内容都挺简单的这道题还可以通过全局变量记录目标值或者DFS来实现我们在日常学习过程中都可以通过一题多解的方法来锻炼代码思考能力。好啦今天的leetcode每日一题就到这里啦
http://www.tj-hxxt.cn/news/132720.html

相关文章:

  • 南宁北京网站建设做一个网站价格
  • 网站建设的需求方案怎么写做网站tt0546
  • 提供服务好的网站制作建一个团购网站需要多少钱
  • 西安网站开发公司哪家强互联网大会官网
  • 深圳精品网站设计网站建设培训学校北京
  • 做网站买服务器穿山甲广告联盟
  • 上海定制网站建设推广智慧团建重置密码验证码
  • 建设网站后如何上线seo的基本步骤顺序正确的是
  • wordpress管理历史版本宁波最好的seo外包
  • 建设信用卡秒批网站wordpress输出副标题
  • 太原网站搜索引擎优化网站建设 大公司排名
  • wordpress 图片展示主题整站优化报价
  • 微科技h5制作网站模板西安网站建设技术外包
  • 彩票网站模版东莞建筑设计院排名
  • 绍兴cms建站系统街景地图手机版下载
  • 济南专业网站建设咨询网站在线生成器
  • 设计购物网站咋做做网站引入字体
  • 三只松鼠商务网站建设目的诛仙3官方网站时竹任务荧灵怎么做
  • 重庆网站推广外包企业河南便宜网站建设费用
  • 网站内做全文搜索丹徒网站建设多少钱
  • 运营一个企业网站的推广方案中山 家居 骏域网站建设专家
  • 做企业网站设营销策划书范文大全
  • 律所网站建设方案书怎么写wordpress 调用所有分类
  • 阿里云网站怎么备案域名wordpress 用户中心
  • 校友网站建设龙岩seo招聘
  • 有什么推广网站网站模板免费网盘
  • php网站开发工资一个云主机 多个网站
  • 提供深圳网站制作公司生活服务行业网站建设
  • 电子商务和网络购物网站网站流量分析的指标有哪些
  • wordpress 建站简单吗自我介绍网站html