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

Posted icyyyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断t1树中是否有与t2树拓扑结构完全相同的子树相关的知识,希望对你有一定的参考价值。

题目:给定彼此独立的两棵二叉树,判断 t1 树是否有与 t2 树拓扑结构完全相同的子树。设 t1 树的边集为 E1,t2 树的边集为 E2,若 E2 等于 E1 ,则表示 t1 树和t2 树的拓扑结构完全相同。

思路:

代码:

 1 /*
 2  * function TreeNode(x) {
 3  *   this.val = x;
 4  *   this.left = null;
 5  *   this.right = null;
 6  * }
 7  */
 8 
 9 /**
10  * 
11  * @param root1 TreeNode类 
12  * @param root2 TreeNode类 
13  * @return bool布尔型
14  */
15 function compareNode(a,b){
16     if(a == null && b == null) return true;
17     if(a == null || b == null) return false;
18     if(a.val == b.val){
19         return compareNode(a.left, b.left) && compareNode(a.right, b.right);
20     }else {
21         return false;
22     }
23     }
24 function isContains( root1 ,  root2 ) {
25     // write code here
26     if(root1 == null && root2 == null) return true;
27     if(root1 == null || root2 == null) return false;
28     if(root1.val == root2.val){
29         return compareNode(root1, root2);
30     }
31     return isContains(root1.left, root2) || isContains(root1.right,root2);
32 }
33 module.exports = {
34     isContains : isContains
35 };

 

以上是关于判断t1树中是否有与t2树拓扑结构完全相同的子树的主要内容,如果未能解决你的问题,请参考以下文章

OptimalSolution--二叉树问题子树与拓扑结构

lintcode.245 子树

#yyds干货盘点# LeetCode程序员面试金典:检查子树

LeetCode101. Symmetric Tree-对称树/镜像树

Python编程之数据结构与算法练习_010

递归子树