题目:给定彼此独立的两棵二叉树,判断 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 };