题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
注意树的遍历即可。
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if (root1 == null || root2 == null) { return false; } else { if (root1.val == root2.val) { if (judge(root1, root2)) { return true; } } return HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2); } } public boolean judge(TreeNode root, TreeNode target) { if (target == null) { return true; } else if (root == null) { return false; } else if (root.val == target.val) { return judge(root.left, target.left) && judge(root.right, target.right); } return false; } }