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

临沂高端网站建设立网站系

临沂高端网站建设,立网站系,高端品牌网站建设策略,手工制作图片作品随想录日记part13 t i m e #xff1a; time#xff1a; time#xff1a; 2024.03.06 主要内容#xff1a;今天的主要内容是二叉树的第二部分哦#xff0c;主要有层序遍历#xff1b;翻转二叉树#xff1b;对称二叉树。 102.二叉树的层序遍历226.翻转二叉树101. 对称二叉…随想录日记part13 t i m e time time 2024.03.06 主要内容今天的主要内容是二叉树的第二部分哦主要有层序遍历翻转二叉树对称二叉树。 102.二叉树的层序遍历226.翻转二叉树101. 对称二叉树 Topic1二叉树的层序遍历 题目 给你二叉树的根节点 r o o t root root 返回其节点值的层序遍历。 即逐层地从左到右访问所有节点。 示例 输入 r o o t [ 3 , 9 , 20 , n u l l , n u l l , 15 , 7 ] root [3,9,20,null,null,15,7] root[3,9,20,null,null,15,7] 输出 [ [ 3 ] , [ 9 , 20 ] , [ 15 , 7 ] ] [[3],[9,20],[15,7]] [[3],[9,20],[15,7]] **思路**层序遍历是一层一层去遍历二叉树符合先进先出的规则即图论中的广度优先遍历思路所以这道题目我们需要辅助的队列来实现层序遍历。其遍历的动画可以观看下面的动画 下面给出两种层序遍历的写法 class Solution {// 定义一个记录组后输出的数组public ListListInteger resList new ArrayListListInteger();public ListListInteger levelOrder(TreeNode root) {//levelOrder_queue(root);levelOrder_queue_pro(root,0);return resList;}// 使用栈辅助进行层次遍历private void levelOrder_queue(TreeNode root) {if (root null)return;// 创建辅助队列QueueTreeNode q new LinkedListTreeNode();q.offer(root);while (!q.isEmpty()) {ListInteger tem new ArrayListInteger();int length q.size();while (length 0) {TreeNode t q.poll();tem.add(t.val);if (t.left ! null)q.offer(t.left);if (t.right ! null)q.offer(t.right);length--;}resList.add(tem);}}//使用递归的方法private void levelOrder_queue_pro(TreeNode root,int deep){if(rootnull) return;deep;if(resList.size()deep){//当层级增加时list的Item也增加利用list的索引值进行层级界定ListInteger tem new ArrayListInteger();resList.add(tem);}resList.get(deep-1).add(root.val);levelOrder_queue_pro(root.left,deep);levelOrder_queue_pro(root.right,deep);} }上面的两种写法务必要记住。 Topic2翻转二叉树 **题目**给你一棵二叉树的根节点 r o o t root root 翻转这棵二叉树并返回其根节点。 示例 输入 r o o t [ 4 , 2 , 7 , 1 , 3 , 6 , 9 ] root [4,2,7,1,3,6,9] root[4,2,7,1,3,6,9] 输出 [ 4 , 7 , 2 , 9 , 6 , 3 , 1 ] [4,7,2,9,6,3,1] [4,7,2,9,6,3,1] **思路**整个树的翻转主要有两种思路 递归迭代 递归法写好递归是要有三个关键点注意的 1.确定参数和返回值 TreeNode transTree(TreeNode root);2.确定中止条件 if(rootnull)return null;3.确定单层递归逻辑 我的代码是前序遍历先反转左右子树然后进行交换左右孩子节点 TreeNode btransTree(root.right);TreeNode atransTree(root.left);tem.leftb;tem.righta;完整的 j a v a java java 代码如下 class Solution {public TreeNode invertTree(TreeNode root) {return transTree(root);}private TreeNode transTree(TreeNode root) {TreeNode tem root;if (tem null)return null;TreeNode b transTree(root.right);TreeNode a transTree(root.left);tem.left b;tem.right a;return root;} }迭代法能够使用递归的方法都能使用栈来实现 如下面代码实现 class Solution {public TreeNode invertTree(TreeNode root) {if(rootnull)return root;//建立栈StackTreeNode stacknew StackTreeNode();stack.push(root);while(!stack.isEmpty()){TreeNode temstack.pop();transpoint(tem);if(tem.right!null)stack.push(tem.right);if(tem.left!null)stack.push(tem.left);}return root;}private void transpoint(TreeNode root){if(rootnull)return;else{TreeNode troot.left;root.leftroot.right;root.rightt;}} }Topic3对称二叉树 **题目**给你一个二叉树的根节点 r o o t root root 检查它是否轴对称。 示例 输入 r o o t [ 1 , 2 , 2 , 3 , 4 , 4 , 3 ] root [1,2,2,3,4,4,3] root[1,2,2,3,4,4,3] 输出 t r u e true true 思路 后序遍历的递归法以及迭代法 递归法 class Solution {// 递归法public boolean isSymmetric(TreeNode root) {if (root null)return true;elsereturn isSame(root.left, root.right);}private boolean isSame(TreeNode left, TreeNode right) {if (left null right ! null)return false;else if (left ! null right null)return false;else if (left null right null)return true;else {boolean a isSame(left.left, right.right);boolean b isSame(left.right, right.left);return (a b);}} }迭代法 代码实现如下 class Solution {// 使用队列辅助实现的迭代法public boolean isSymmetric(TreeNode root) {if (root null)return true;DequeTreeNode queue new LinkedList();queue.offerFirst(root.left);// 将左子树头节点压入queue.offerLast(root.right);// 将右子树头节点压入while (!queue.isEmpty()) {TreeNode left queue.pollFirst();TreeNode right queue.pollLast();if (left null right null)continue;if (left null || right null || left.val ! right.val)return false;queue.offerFirst(left.left);queue.offerLast(right.right);queue.offerFirst(left.right);queue.offerLast(right.left);}return true;} }
http://www.zqtcl.cn/news/83641/

相关文章:

  • 大学英语作文网站长沙做网站一般多少钱
  • 建站国外百元服务器厦门seo优化
  • 郑州做网站九零后电子商务主要学什么就业方向工资
  • 合肥网站建设 卫来网络天津网站页面设计
  • 上海网站关键词排名优化报价wordpress 上传图片尺寸
  • 哪些网站可以做图片链接湖南招投标信息网官网
  • 织梦系统seo网站模板如何进入谷歌网站
  • 手机网站 cmswordpress主题如何导入演示
  • 代价网站建设五种常见的软件架构
  • 企业网站开发服务合同建站网站图片不显示
  • 运城姚孟网站建设2022年楼市最新消息
  • 长沙建站工作室常用网站代码
  • 做国际网站多少钱上海市建设机械行业协会网站
  • 企业的网站建设文章青岛住房和城乡建设厅网站首页
  • 湖南省住房和城乡建设厅网站考试飞数石家庄网站建设
  • 延边有没有做网站的安县网站制作
  • 网站结构形式有哪些媒体营销平台
  • 微企点建站怎么样淘宝上网站建设续费
  • 易语言跳到指定网站怎么做如何获取网站开发语言
  • 南昌网站建设公司网站建设公司哪家好石家庄科技中心网站
  • 门户网站建站流程做网站除了域名还要买什么
  • 做百度推广网站多少钱专业营销型网站建设费用
  • 目前哪个网站建设的最好网站制作aqq
  • 电子商务系统网站建设外贸推广网站邮箱收费
  • 西安市城乡建设管理局网站做珠宝网站公司
  • 网站开发者工具的网络选项电销系统软件
  • wordpress movie做百度网站优化多少钱
  • 企业网站改自适应网站建设夜猫
  • 网站建设电话销售技巧和话术网络游戏中心
  • 营销型网站建设策划书怎么写网站怎样才有流量