572. Subtree of Another Tree

Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself.

572. <wbr>Subtree <wbr>of <wbr>Another <wbr>Tree
//用先序遍历的方法,本解法思路: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 @ 2019-03-15 16:00  MarkLeeBYR  阅读(80)  评论(0)    收藏  举报