判断二叉树子结构:
1. 先用一个深度搜索写一个判断root2是否为TreeNode子结构的函数;
2. 遍历root1的每一个结点,看是否存在以某个结点开头的输包含root2;
public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1 == null || root2 == null) return false; return isSubTree(root1,root2) || HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2); } boolean isSubTree(TreeNode root1, TreeNode root2){ if(root2 == null){ return true; }else if(root1 == null){ return false; } if(root1.val == root2.val){ return isSubTree(root1.left,root2.left) && isSubTree(root1.right,root2.right); }else { return false; } }