树的子结构

题目描述

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
见leetcode572
 
//用先序遍历的方法,本解法思路:s的值和t的值不同则跳出,相同,则继续比左子树,直到都指向空。才判定两者值相等
class Solution {
    public boolean isSubtree(TreeNode s, TreeNode t) {
       if (s == null) return false;
       if (isSame(s, t)) return true;
       return isSubtree(s.left, t) || isSubtree(s.right, t);
    }
    public boolean isSame(TreeNode s, TreeNode t) {
       if (s == null && t == null) return true;
       if (s == null || t == null) return false;
       if (s.val != t.val) return false;
       return isSame(s.left, t.left) && isSame(s.right, t.right);
    }
}
 
 
posted @ 2018-10-12 10:11  MarkLeeBYR  阅读(111)  评论(0)    收藏  举报