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

网站布局方法分类重庆seowhy整站优化

网站布局方法分类,重庆seowhy整站优化,有没有做培养基的网站,tomcat部署wordpress题目 考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true&…

题目

考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。

一、代码实现

func leafSimilar(root1 *TreeNode, root2 *TreeNode) bool {// 递归法遍历叶子节点(网页3、5)var getLeaves func(root *TreeNode) []intgetLeaves = func(root *TreeNode) []int {if root == nil {return []int{}}if root.Left == nil && root.Right == nil {return []int{root.Val}}// 左子树优先遍历保证顺序(网页2、3)return append(getLeaves(root.Left), getLeaves(root.Right)...)}leaves1 := getLeaves(root1)leaves2 := getLeaves(root2)return reflect.DeepEqual(leaves1, leaves2)
}

二、算法分析

1. 核心思路
  • 深度优先遍历:递归遍历二叉树,优先访问左子树,确保叶子节点按从左到右顺序收集
  • 序列比对:比较两棵树的叶子值序列是否完全一致
2. 关键步骤
  1. 递归终止条件:空节点返回空数组,叶子节点返回自身值
  2. 递归分解:将左右子树的叶子序列合并
  3. 最终比对:使用reflect.DeepEqual判断切片相等性
3. 复杂度
指标说明
时间复杂度O(n)每个节点访问一次,n为节点总数
空间复杂度O(h)h为树的高度(递归栈空间)

三、图解示例

以二叉树root1 = [3,5,1,6,2,9,8,null,null,7,4]root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]为例:
在这里插入图片描述

四、边界条件与扩展

1. 特殊场景验证
  • 空树对比root1=nil, root2=nil → true
  • 结构不同但叶序相同:如root1=[1,2,3], root2=[1,3,2] → false
  • 单节点树root1=[5], root2=[5] → true
2. 多语言实现
# Python实现(网页2、3)
class Solution:def leafSimilar(self, root1: TreeNode, root2: TreeNode) -> bool:def dfs(node):if not node: return []if not node.left and not node.right: return [node.val]return dfs(node.left) + dfs(node.right)return dfs(root1) == dfs(root2)
// Java实现(网页4)
class Solution {public boolean leafSimilar(TreeNode root1, TreeNode root2) {List<Integer> list1 = new ArrayList<>();List<Integer> list2 = new ArrayList<>();dfs(root1, list1);dfs(root2, list2);return list1.equals(list2);}private void dfs(TreeNode node, List<Integer> list) {if (node == null) return;if (node.left == null && node.right == null) list.add(node.val);dfs(node.left, list);dfs(node.right, list);}
}

五、总结与扩展

1. 核心创新点
  • 递归分治策略:将复杂问题分解为子树处理
  • 顺序保障机制:左子树优先遍历确保叶序一致性
  • 内存优化设计:Go语言切片操作避免全局变量
2. 扩展应用
  • 并行遍历优化:使用协程同时遍历两棵树,实时比对叶子值
  • 非递归实现:用栈模拟递归过程,避免栈溢出风险
  • 流式处理:边遍历边比较,提前终止不匹配的情况
3. 工程优化方向
  • 内存预分配:根据树高度预切片容量(Go语言)
  • 迭代器模式:实现叶子节点迭代器支持大规模数据处理
  • 并发安全:添加互斥锁支持多线程环境下的遍历
http://www.lryc.cn/news/616722.html

相关文章:

  • 进入城乡建设网站怎么竣工备案seo优化教学视频
  • 建设网站哪家公司比较好外贸网站建设公司哪家好
  • 四川建设网站公司如何制作企业网站
  • 做营销型网站一般要多少钱推广app的营销方案
  • 做服务网站公司网站如何推广
  • 为什么做pc网站营销策划方案范文
  • 美国互联网公司裁员惠州seo网络推广
  • 手机网站开发解决方案沈阳今日新闻头条
  • 合肥做公司网站联系方式整站优化的公司
  • 品牌的佛山网站建设宝鸡seo优化
  • 用wordpress做的网站有哪些广告推广方案怎么写
  • 临沂网站建设培训百度手机助手安卓版下载
  • 网站建设致谢seo优化教程自学
  • 怎样做微信挂机平台网站德州网站建设优化
  • 注册表怎么做动态网站手机网站制作平台
  • 深圳做网站那里好网络推广的方法有
  • 网站建设需要注册42类吗腾讯广告推广平台入口
  • 网站一般做哪些测试西安百度推广电话
  • 网站建站需求怎么做网站教程
  • 电商网站建设源代码电商网站设计
  • 蛋白质结构预测工具网站开发廊坊网站
  • 建设银行国际互联网站网络服务提供商
  • 做视频网站一般多少钱高端快速建站
  • 沧州做企业网站新浪nba最新消息
  • 做的最好的网站北京seo关键词
  • 南通专业网站排名推广网络销售话术900句
  • 网站建设进展报告怎么查询搜索关键词
  • 自己开的网站 可以做代销吗网络营销的常用工具
  • wordpress去掉底部版权廊坊seo排名外包
  • 记事本做网站的流程东莞网站自动化推广