Iava 剑指offer

xiaoxiao2021-02-27  539

题目:输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。

两个步骤:

1、第一步在树 A 中找到和树 B 的根结点的值一样的结点 R

2、第二步再判断树 A 中以 R 为根结点的子树是不是包含和树 B 一样的结构。

对于递归:想好判断条件,以及 什么条件下该去递归。

[java]  view plain  copy /**  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 == nullreturn false;           return isEqual(root1, root2) || HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2);       }               private boolean isEqual(TreeNode root1, TreeNode root2) {           if(root2 == nullreturn true;           if(root1 == nullreturn false;           return root1.val == root2.val && isEqual(root1.left, root2.left) && isEqual(root1.right, root2.right);       }   }  

转载请注明原文地址: https://www.6miu.com/read-1020.html

最新回复(0)