剑指Offer17 - 树的子结构
2020-06-02 06:17
169 查看
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
解题思路
这是典型的递归解法:
- 判断子树根值是否相等。
- 如果是相等,判断该根左右孩子结点是否相等。
- 如果不等,找树的左右孩子结点当根结点,递归到 1 步骤。
代码实现
public class Problem17 { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } 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); } public boolean isSubtree(TreeNode root1,TreeNode root2){ if(root2 == null){ return true; } if(root1 == null){ return false; } if(root1.val == root2.val){ return isSubtree(root1.left, root2.left) && isSubtree(root1.right, root2.right); } return false; } }
相关文章推荐
- 【剑指offer】17树的子结构
- 剑指offer_树的子结构
- 剑指offer:合并两个排序的链表&树的子结构&二叉树的镜像
- 树的子结构-剑指Offer(Java语言)
- 剑指offer 树的子结构
- 【剑指offer】树的子结构
- 剑指offer-树的子结构
- 树的子结构(判断是否是另一个树的子结构)
- 程序员面试题精选100题(50)-树为另一树的子结构
- 树的子结构
- 题目1520:树的子结构 ——树的遍历
- 数据结构-树的子结构
- 题目1520:树的子结构
- 二叉树的子结构
- [程序员面试题精选100题]50.树的子结构
- 树的子结构
- 二叉树的子结构的判定
- 树的子结构
- 面试题18:树的子结构
- 剑指Offer-18-树的子结构