题目描述

对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。

给定两棵二叉树的头结点AB,请返回一个bool值,代表A中是否存在一棵同构于B的子树。

代码如下:

 import java.util.*;

 /*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}*/
  // 一个函数求两棵树是否相同(递归),另一个函数递归求一个树的子树是否和另一棵树相同
public class IdenticalTree {
public boolean chkIdentical(TreeNode A, TreeNode B) {
// write code here
//在A中找到一个节点的值等于B,如果isSameTree返回的值是正确的,就返回正确,否则接着往下找
if(A == null) return false;
if(isSameTree(A, B)) return true;
return chkIdentical(A.left, B) || chkIdentical(A.right, B);
}
public boolean isSameTree(TreeNode A, TreeNode B){
if(A == null && B == null) return true;
if(A == null || B == null) return false;
if(A.val != B.val) return false;
return isSameTree(A.left, B.left) && isSameTree(A.right, B.right);
} }

解题(IdenticalTree--拓扑结构相同子树 )的更多相关文章

  1. 【剑指Offer】二叉树的深度 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 日期 题目地址:https://www.nowcoder.co ...

  2. 《程序员代码面试指南》第三章 二叉树问题 判断t1 树中是否有与t2 树拓扑结构完全相同的子树

    题目 判断t1 树中是否有与t2 树拓扑结构完全相同的子树 java代码 package com.lizhouwei.chapter3; /** * @Description: 判断t1 树中是否有与 ...

  3. OptimalSolution(2)--二叉树问题(4)子树与拓扑结构

    一.判断t1树是否包含t2树全部的拓扑结构 1 / \ 2 3 2 / \ / \ / \ 4 5 6 7 4 5 / \ / / 8 9 10 8 返回:true 解法(O(M×N)):如果t1中某 ...

  4. [程序员代码面试指南]二叉树问题-判断t1树是否包含t2树的全部拓扑结构、[LeetCode]572. 另一个树的子树

    题目1 解 先序遍历树1,判断树1以每个节点为根的子树是否包含树2的拓扑结构. 时间复杂度:O(M*N) 注意区分判断总体包含关系.和判断子树是否包含树2的函数. 代码 public class Ma ...

  5. 牛客 判断t1树中是否含有与t2树拓扑结构完全相同的子树

    题目链接:https://www.nowcoder.com/practice/5a41ce17e8194e1688aa83a73137f7ee?tpId=101&tqId=33239& ...

  6. 字符串问题简述与两个基本问题的Java实现——判断二叉树拓扑结构关系与变形词

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6851631.html  (解题金句:其他问题字符串化,然后调用String类封装方法解决问题: 字符串问题数组 ...

  7. [LeetCode] Largest BST Subtree 最大的二分搜索子树

    Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...

  8. [LeetCode] Count Univalue Subtrees 计数相同值子树的个数

    Given a binary tree, count the number of uni-value subtrees. A Uni-value subtree means all nodes of ...

  9. BZOJ3720 Gty的妹子树

    Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕…… Gty神(xian)犇(chong)从来不缺妹子…… 他来到了一棵妹子树下,发现每 ...

随机推荐

  1. EMQ消息队列初体验

    使用命令创建admin用户,密码123 emqx_ctl users add admin 配置规则/etc/emqx/acl.conf(除管理员,其他用户只能订阅限定的测试主题路径) %% 允许'ad ...

  2. go语言学习--内核态和用户态(协程)

    go中的一个特点就是引入了相比于线程更加轻量级的协程(用户态的线程),那么什么是用户态和内核态呢? 一.什么是用户态和内核态 当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核 ...

  3. Android编程-Activity

    重要的回调函数: onCreate():初始化activity要用的其他的组件(可以是其他的activity和contentprovider之类).调用setContentView(),设定本Acti ...

  4. docker-容器,仓库

    ---恢复内容开始--- 前言: 学技术不能该断时间,连续的学习才是最好的学习方式. 00x1: 创建一个容器:docker create -it xxxx 而启动容器就有两种状态了,第一:新容器启动 ...

  5. elasticsearch 5.0以上不支持consistency 和 quorum

    从ES2.2升级到5.2后,原先执行put 带 consistency=all / quorum 参数的,都报错了,提示语法错误.. 百度查了一通,都没发现相关问题.无奈,还是查官方文档.. 发现这是 ...

  6. Windows编程1

    一个最简单的windows必须包括两个函数: 1.入口函数:WinMain 2.窗口过程回调函数:WndProc 结构如下: #include <windows.h> //窗口过程回调函数 ...

  7. 优化读取纯真IP数据库QQWry.dat获取地区信息

    改自HeDaode 2007-12-28的代码 将之改为从硬盘读取后文件后,将MemoryStream放到内存中,提高后续查询速度 ///<summary> /// 提供从纯真IP数据库搜 ...

  8. Specified key was too long; max key length is 767 bytes解决方案

    问题描述: 1.  使用spark sql处理数据逻辑,逻辑处理后使用 df.write.mode(saveMode).jdbc(url, tableName, connectionPropertie ...

  9. memory_profiler的使用

    作用:memory_profiler是用来分析每行代码的内存使用情况 使用方法一: 1.在函数前添加 @profile 2.运行方式: python -m memory_profiler memory ...

  10. Oracle 归档日志文件

      今天数据群有人反应网站不能正常打开,经检查Oracle数据库远程连不上,提示信息:ORA-00257: archiver error. Connect internal only, until f ...