1. 程式人生 > 其它 >#力扣 LeetCode572. 另一個樹的子樹 @FDDLC

#力扣 LeetCode572. 另一個樹的子樹 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/subtree-of-another-tree/

Java程式碼:

class Solution { //兩個非空二叉樹 s 和 t,s 也可以看做它自身的一棵子樹。
    public boolean cmp(TreeNode a,TreeNode b){
        if(null==a&&null==b)return true;
        if(null==a^null==b)return false;
        return a.val==b.val&&cmp(a.left,b.left)&&cmp(a.right,b.right);
    }
    public boolean isSubtree(TreeNode s, TreeNode t) {
        if(s.val==t.val&&cmp(s,t))return true; //s.val==t.val可無
        if(s.left!=null&&isSubtree(s.left,t))return true;
        if(s.right!=null&&isSubtree(s.right,t))return true;
        return false;
    }
}

補充:

class Solution { //兩個非空二叉樹 s 和 t,s 也可以看做它自身的一棵子樹。
    public boolean cmp(TreeNode a,TreeNode b){
        if(null==a&&null==b)return true;
        if(null==a^null==b)return false;
        return a.val==b.val&&cmp(a.left,b.left)&&cmp(a.right,b.right);
    }
    public boolean isSubtree(TreeNode s, TreeNode t) {
        if(cmp(s,t))return true;
        if(s.left!=null&&isSubtree(s.left,t))return true;
        if(s.right!=null&&isSubtree(s.right,t))return true;
        return false;
    }
}