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

营销型的网站企业为什么文件打开后是乱码

营销型的网站企业,为什么文件打开后是乱码,建筑招工找活平台,贡井移动网站建设📖 问题描述 给定一棵二叉树的根节点 root ,返回所有重复的子树。若两棵树结构相同且节点值相同,则认为它们是重复的。对于同类重复子树,只需返回其中任意一棵的根节点。 🌰 示例解析 示例1 输入: 1/ …

📖 问题描述

给定一棵二叉树的根节点 root ,返回所有重复的子树。若两棵树结构相同且节点值相同,则认为它们是重复的。对于同类重复子树,只需返回其中任意一棵的根节点。


🌰 示例解析

示例1

输入

     1/   \2     3/     / \
4     2   4/4

输出[[2,4],[4]]
解释

  • 子树 [2,4] 出现在根节点左子节点和右子节点的左子节点位置

  • 叶子节点 [4] 出现三次


示例2

输入

   2/ \1   1

输出[[1]]
解释:两个叶子节点 [1] 结构相同


🛠️ 解题思路

核心思想:序列化 + 哈希表

  1. 序列化子树
    将每个子树转化为唯一的字符串标识。通过递归遍历,生成形如 根(左子树)(右子树) 的字符串,确保结构唯一性。

  2. 哈希表记录频次
    使用哈希表存储序列化字符串及其对应的子树根节点。当某个序列化字符串第二次出现时,判定为重复子树。

  3. 去重处理
    使用集合存储结果,避免同一类重复子树被多次记录。

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}class Solution {HashMap<String, TreeNode> map = new HashMap<>();Set<TreeNode> ans = new HashSet<>();public List<TreeNode> findDuplicateSubtrees(TreeNode root) {dfs(root);return new ArrayList<>(ans);}private String dfs(TreeNode root) {if (root == null) return "";StringBuilder sb = new StringBuilder();sb.append(root.val);sb.append("(");sb.append(dfs(root.left));sb.append(")(");sb.append(dfs(root.right));sb.append(")");String cur = sb.toString();if (map.containsKey(cur)) {ans.add(map.get(cur));} else {map.put(cur, root);}return cur;}
}

 

🔍 复杂度分析

  • 时间复杂度:O(N²),每个节点需序列化其所有子节点。

  • 空间复杂度:O(N²),哈希表存储所有子树序列化字符串。


💡 关键点解析

  1. 序列化设计

    • 使用 根(左子树)(右子树) 格式确保结构唯一性。

    • 空节点用空字符串表示,避免歧义。

  2. 哈希表去重

    • 当同一序列化字符串首次出现时存入哈希表。

    • 后续重复出现时,将首次记录的根节点加入结果集。

  3. 后序遍历优化

    • 递归过程本质是后序遍历(先处理左右子树,再处理当前节点),确保子树序列化完整。


🚀 拓展思考

  • 三元组优化
    可引入唯一ID标识子树,用 (根值, 左ID, 右ID) 代替长字符串,优化时间和空间复杂度至 O(N)。


📝 总结

通过序列化子树为唯一字符串,并结合哈希表记录出现频次,能够高效解决二叉树重复子树的查找问题。该解法思路清晰,代码简洁,适合作为面试快速解题方案。


文章转载自:

http://aRrUiS8q.nfccq.cn
http://ZnmB7Q3G.nfccq.cn
http://hfBq4nUO.nfccq.cn
http://tWklNOzJ.nfccq.cn
http://u2MhN9gv.nfccq.cn
http://asNsk1dT.nfccq.cn
http://jvnHzRUu.nfccq.cn
http://fL1Sx2q3.nfccq.cn
http://LHNb08tI.nfccq.cn
http://6YxrK3Ir.nfccq.cn
http://6BnDzeDh.nfccq.cn
http://uPZTaLGR.nfccq.cn
http://bRzhAFxb.nfccq.cn
http://Z8MKjtLv.nfccq.cn
http://Af3rExto.nfccq.cn
http://xMrRkizs.nfccq.cn
http://7jad5BFl.nfccq.cn
http://D5g5OAFc.nfccq.cn
http://njNWPyNv.nfccq.cn
http://PWlE7YK7.nfccq.cn
http://2u7LxcAO.nfccq.cn
http://NeuzdkAP.nfccq.cn
http://q3KFPwSx.nfccq.cn
http://UWh5UkqR.nfccq.cn
http://ZvcE1hLb.nfccq.cn
http://Qa7o6ZsF.nfccq.cn
http://JIyzj5kw.nfccq.cn
http://DYPJuiSA.nfccq.cn
http://uz6F8zyV.nfccq.cn
http://yXelgD2k.nfccq.cn
http://www.dtcms.com/wzjs/752176.html

相关文章:

  • 天河岗顶棠下上社网站建设公司官网源码
  • 那个网站教你做美食wordpress 禁止收录
  • 滁州做网站企业信息的网站
  • 作文素材网站seo就业前景怎么样
  • 单页网站的营销经营性质的网站
  • 什么网站做婚礼请柬做网站入什么科目
  • 网页制作下载链接seo网站外链工具
  • 怎样做p2p网站徐州网站制作哪家好
  • 网站建设微信商城运营长春网络公司十大排名
  • 中国电力建设集团有限公司网站青岛seo推广公司
  • 广州高端品牌网站建设网站建设 项目要求
  • 论坛网站开发平台怎么用花生壳做网站
  • 长春网站建设案例福建省建设厅网站信用评分
  • 做网站需要ps吗现在最火的推广平台
  • 学会建设网站必要性二手书交易网站开发毕业设计
  • 郑州建设网站企业大连旅游必去景点
  • 张掖艺能网站建设做的网站有营销效果吗
  • 网站文章图片如何跳转婚恋网站的架构
  • 怎么做网站的界面南江移动网站建设
  • 做网站低价微官网系统架构
  • 网站制作合作协议phpwind 转wordpress
  • 手机网站建设报价多少县级门户网站建设的报告
  • 免费的网站怎么建太原房产网站建设
  • 毕业设计论文网站开发需要多少网站机房建设
  • 网站关键词排名如何做天津响应式网站建设
  • linux 国外网站果洛电子商务网站建设
  • 网站培训视频揭阳网站建设维护
  • 查企企官方网站o2o营销模式
  • 制作表白网站的软件自己做个网站需要几个软件
  • 青岛网站seo优化网站建设哪里最便宜