1.题目:
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树
2.题目分析:
前提:S树不能为空
(1)返回true;
(2)返回false;
3.程序设计
在S树找到与T树根节点值相等的节点,然后以该节点为根节点产生的树,判断与T树是否相等判断相同树(递归思想)
4.程序源代码
//节点类
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Main {
/*1.找到t的根节点在s中的位置
* 2.判断两颗二叉树是否相同
* */
public boolean isSubtree(TreeNode s,TreeNode t){
boolean flag = false;
//递归的出口条件
if(s != null){
if(s.val == t.val