03给定两个树,判断树2是否为树1的子树,是则返回true
把一棵树序列化为字符串(字符数组)如果str2是str1的子串则T2也是T1的子树。java参考代码如下:packagezuoshen1;publicclassKMP_T1SubtreeEqualsT2{publicstaticclassTreeNode{intval;TreeNodeleft;TreeNoderight;publicTreeNode(intval){this.val=val;this.left=null;this.right=null;}}publicstaticStringpreorder(TreeNoderoot){StringBuildersb=newStringBuilder();precore(root,sb);returnsb.toString();}publicstaticvoidprecore(TreeNoderoot,StringBuildersb){if(root==null)return;sb.append(root.val);sb.append("#");if(root.left!=null){precore(root.left,sb);}if(root.right!=null)precore(root.right,sb);}publicstaticbooleanisSubtree(TreeNoderoot1,TreeNoderoot2){Strings1=preorder(root1);Strings2=preorder(root2);returnKMP.getIndexOf(s1,s2)!=-1?true:false;}publicstaticvoidmain(String[]args){TreeNoderoot=newTreeNode(1);root.left=newTreeNode(2);root.right=newTreeNode(3);root.left.left=newTreeNode(4);root.left.right=newTreeNode(5);root.right.left=newTreeNode(6);root.right.right=newTreeNode(7);TreeNodeother=newTreeNode(3);other.left=newTreeNode(6);other.right=newTreeNode(7);System.out.println(preorder(root));System.out.println(preorder(other));System.out.println(isSubtree(root,other));}}
来自:字符串算法-字符串算法