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

020.二叉树匹配问题

在树中查找子树

题目链接

leetcode 572

题意

给你两棵二叉树 root 和 subRoot

检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树

如果存在,返回 true ,否则,返回 false

二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点

tree 也可以看做它自身的一棵子树

思路

递归遍历每个结点

拿到当前结点,递归判断以当前结点为根的子树是否与subRoot重合

class Solution {
public:bool isSubtree(TreeNode* root, TreeNode* subRoot) {if(root==nullptr)return subRoot==nullptr;if(issame(root,subRoot))return 1;return isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot);//找打一个匹配即可}bool issame(TreeNode*o,TreeNode*s){if(o==nullptr&&s==nullptr)return 1;if(o==nullptr||s==nullptr)return 0;if(o->val!=s->val)return 0;return issame(o->left,s->left)&&issame(o->right,s->right);//完全重合}
};

在树中查找链表

题目链接

leetcode 1367

题意

给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表

如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False

一直向下的路径的意思是:从树中某个节点开始,一直连续向下的路径

思路

递归遍历每个结点

拿到当前结点,递归判断链表能否插入当前子树

class Solution {
public:bool isSubPath(ListNode* head, TreeNode* root) {if(head==nullptr)return 1;if(root==nullptr)return 0;if(head->val==root->val&&dfs(head,root))return 1;return isSubPath(head,root->left)||isSubPath(head,root->right);}bool dfs(ListNode*h,TreeNode*o){if(h==nullptr)return 1;if(o==nullptr)return 0;if(h->val!=o->val)return 0;return dfs(h->next,o->left)||dfs(h->next,o->right);//能插入一个位置即可}
};
http://www.zskr.cn/news/143446.html

相关文章:

  • 9 个降AI率工具推荐,研究生必备!
  • Solution Set
  • 真香,一款Windows系统监控绝配工具!
  • 2026卫生资格考试注意事项 ,实用干货合集 - 资讯焦点
  • CF1051G
  • 【生活杂谈】关于我对数学和世界的感悟
  • 整洁架构小文档
  • 大健康行业品牌营销战略咨询怎么做?奇正沐古解决行业难题 - 资讯焦点
  • 一次架构调整,让人工介入减少了一半
  • Rhino 8.18 超详细下载安装教程!附激活教程+下载渠道(亲测有效)
  • 苏州牙科哪里好?补牙、拔牙、美白、矫正、种植,一站式攻略请收好 - 品牌日记
  • Leetcode 84 水果成篮 | 删除子数组的最大得分
  • AI开发者的“救命稻草“:RAG、知识库和Embedding,让大模型无所不知!
  • 【Unity】未来技术路线
  • 个人总结
  • 传统算法vs大模型应用开发工程师,零基础转行选谁?
  • Sonatype Nexus Repository Manager —— 详细、系统性介绍
  • 【AI革命】Deep Research深度研究:大模型如何实现复杂任务推理?零基础也能学会的多智能体技术!
  • Java毕设选题推荐:基于SpringBoot的闲置物品循环交易保障系统的设计与实现基于springboot的二手物品交易系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 负载越来越大,传统互感器为什么开始拖企业用电管理的后腿?
  • 1.1 Python的前世今生
  • 2-SAT
  • 别急着除法!这道题真正想教你的,是“工程级思维”
  • 经典算法题型之复数乘法(二)
  • ❾⁄₄ ⟦ OSCP ⬖ 研记 ⟧ 防病毒软件规避 ➱ 内存中的逃避技术(上)
  • 【Unity实用插件】SpriteDicing 2.1.0 中文文档
  • 大模型开发避坑指南:医学RAG技术全面失效,专家揭示4大致命问题,开发者必看!
  • 2.1 变量与数据类型
  • 为什么闪回数据库后,必须用alter database open resetlogs;而不是普通的alter database open;
  • Java毕设项目推荐-基于springboot的传媒公司传媒直播直播运营管理系统设计与实现【附源码+文档,调试定制服务】