树的子结构
树的子结构
http://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88
- 在root1中存在某一个节点作为根的子树,能包裹住root2。
- 遍历root1的每一个节点,让每个节点都做根节点,做1中描述的操作。
代码
public class Solution { public boolean isSameTree(TreeNode root1,TreeNode root2){ if(root2==null){ return true; } if(root1==null){ return false; } if(root1.val!=root2.val){ return false; } boolean b1 = isSameTree(root1.left, root2.left); boolean b2 = isSameTree(root1.right, root2.right); return b1&&b2; } public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root2==null||root1==null){ return false; } if(isSameTree(root1, root2)){ return true; } boolean b1 = HasSubtree(root1.left, root2); boolean b2 = HasSubtree(root1.right, root2); return b1||b2; } }