剑指Offer中的一道题,树的子结构,请各位帮我看看
输入两颗二叉树A,B,判断B是不是A的子结构。
代码如下,我觉得没问题,编译结果就是不对,请帮我看看,哪个地方的问题 import java.util.LinkedList; import java.util.Queue; public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1==null) return false; if(root2==null) return false; Queue<TreeNode> q1=new LinkedList<TreeNode>(); TreeNode node=null; q1.add(root1); while(!q1.isEmpty()){ node=q1.remove(); if(node.left!=null) q1.add(node.left); if(node.right!=null) q1.add(node.right); if(node.val==root2.val){ if(isSame(node,root2)) return true; } } return false; } private boolean isSame(TreeNode root1,TreeNode root2){ if(root1==null&&root2==null) return true; else if(root1==null||root2==null){ return false; } if(root1.val==root2.val) return isSame(root1.left,root2.left)&&isSame(root1.right,root2.right); return false; } }