判断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 };

 

上一篇:TButton(Sender) 和Sender As TButton


下一篇:WPF ICommand 接口