判定T2 是不是T1 的子树(算法)

来源:互联网 发布:视频传输 容错算法 编辑:程序博客网 时间:2024/04/29 06:15

You have two very large binary tree : T1,with millions of nodes,and T2,with hundreds of nodes,create an algorithm to decide if T2 is a subtree of T1;

boolean contains Tree(TreeNode t1,TreeNode t2){if(t2 == null)return true;else return subTree(t1,t2);}boolean subTree(TreeNode t1,TreeNode t2){if(t1 == null)return false;if( t1.data == t2.data)if(matchTree(t1,t2))return true;return (subTree(t1.left,t2) || subTree(t1.right,t2));}boolean matchTree(TreeNode t1,TreeNode t2){if(t1 == null && t2 == null)return true;if(t1 == null ||  t2 == null)return false;if(t1.data != t2.data)return false;retrurn ( matchTree(t1,left,t2.left) && matchTree(t1.right,t2.right));}

0 0