判断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树拓扑结构完全相同的子树的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# LeetCode程序员面试金典:检查子树