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

广州海珠网站设计深圳住建局官方网电话

广州海珠网站设计,深圳住建局官方网电话,那个可以做棋牌网站,北京网站建设亿玛酷适合5声明 该系列文章仅仅展示个人的解题思路和分析过程#xff0c;并非一定是优质题解#xff0c;重要的是通过分析和解决问题能让我们逐渐熟练和成长#xff0c;从新手到大佬离不开一个磨练的过程#xff0c;加油#xff01; 原题链接 翻转二叉树备战技术面试#xff1f;…声明 该系列文章仅仅展示个人的解题思路和分析过程并非一定是优质题解重要的是通过分析和解决问题能让我们逐渐熟练和成长从新手到大佬离不开一个磨练的过程加油 原题链接 翻转二叉树备战技术面试力扣提供海量技术面试资源帮助你高效提升编程技能轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/invert-binary-tree/ 算法分析 如下图1和图2可按照1、2、3、4的顺序依次对每个非叶子节点的左右孩子节点进行镜像反转对于只有一个孩子节点的节点也要进行镜像反转操作。 图1 图2 分析 1.如何完成镜像反转 可以通过递归遍历整棵树遍历过程中按照以下方式进行判断和操作 1若当前节点为空或无左孩子和右孩子节点则return; 2否则继续遍历左右孩子节点; 3交换左右孩子节点; 2.如何交换左右孩子节点 1左右孩子节点均不为空则交换左右孩子节点 2左孩子节点为空右孩子节点不为空则左孩子节点右孩子节点右孩子节点置空 3右孩子节点为空左孩子节点不为空则右孩子节点左孩子节点左孩子节点置空. 代码示例C# //翻转二叉树 public TreeNode MirrorTree(TreeNode root) {if (root ! null) Reverse(root);return root; }//对以指定节点为根节点的二叉树进行镜像反转操作 private void Reverse(TreeNode node) {//检测是否满足镜像反转要求if (node null || (node.left null node.right null)) return;if (node.left ! null) Reverse(node.left);//对当前节点的左孩子节点进行镜像反转操作if (node.right ! null) Reverse(node.right);//对当前节点的右孩子节点进行镜像反转操作SwapChildren(node);//交换当前节点的左右孩子节点 }//交换指定节点的左右孩子节点 private void SwapChildren(TreeNode node) {if (node.left ! null node.right ! null)(node.left, node.right) (node.right, node.left);else if (node.left null node.right ! null)(node.left, node.right) (node.right, null);else if (node.left ! null node.right null)(node.right, node.left) (node.left, null); } 算法解说 根据题目要求我们需要对一个二叉树进行翻转操作主方法的输入是该二叉树的根节点返回值也是一个节点。实际上我们可以对问题进行细分对二叉树的翻转实际上就是对二叉树节点的交换或者说是将每个节点的位置进行重新排序有的节点的位置保持不变如根节点有的节点则需要与其它节点交换位置如叶子节点等。 对问题进行转换后我们自然需要对整个二叉树进行遍历那么我们就需要搞清楚两个问题。 1.什么时候交换节点 2.怎么交换节点 如图1和图2我们列举出了本题目将会出现的两种二叉树根据这两种二叉树我们去找到上面两个问题的答案具体思路请参考算法分析。 如何将算法分析转换为代码依旧是确定两个点一是变量二是逻辑主体本题目的算法分析中并没有要求需要单独定义变量去记录数据所以我们只看逻辑主体即可代码示范中我们将节点交换方法独立出来以方便维护以及增加可读性由于我们采用的是递归方式遍历二叉树所以进行二叉树反转的逻辑我们也将其单独定义为一个函数。
http://www.w-s-a.com/news/906413/

相关文章:

  • 科研实验室网站建设wordpress加载模板
  • 用r做简易的网站软件园二期做网站的公司
  • 菏泽网站建设价格长春高档网站建设
  • PHP网站开发与管理设计心得网站流量图怎么做
  • 苏州做网站企业wordpress点击文字弹出层
  • 做网站必要性中山古镇做网站
  • 增城住房和城乡建设局网站2021网站你懂我意思正能量
  • seo优秀网站深圳企业医疗网站建设
  • 单页 网站 模板重庆微信网站制作专家
  • 石家庄网站定制制作企业所得税优惠政策最新2022文件
  • 免费推广网站途径有哪些郑州企业型网站建设
  • wap网站建设设计wordpress首页名称
  • wordpress网站换空间南宁网站设计可以找我
  • 期货贵金属网站建设招远网站建设哪家专业
  • 上海网站排名个人网站可以做百度推广
  • 网站主题及样式优化个人网站 可以做论坛吗
  • 中企动力 网站推广一级域名免费申请
  • 山东专业的网站建设博罗做网站哪家强
  • 手机网站支持微信支付吗宝塔如何添加ip域名做网站
  • 什么专业学网站建设企业合同管理系统
  • 我要啦免费统计怎么做网站销售订单管理系统软件
  • 门户网站建设教程更改wordpress端口
  • 普兰店网站建设公司云计算培训
  • 网站建设的网络技术app下载平台哪个好
  • 中国建筑人才网是什么网站导购网站制作
  • 网站建设开票东莞龙岗网站建设
  • 17网站一起做网批最近湘潭的新闻
  • 专业网站设计专业服务网站news怎么做
  • 杭州租房网站建设设计网站架构
  • 安徽做网站公司哪家好建设网站需要什么内容