๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 26. ๆ ‘็š„ๅญ็ป“ๆž„

ๅžไฝ›็ซฅๅญ2022ๅนด10ๆœˆ10ๆ—ฅ
  • algorithm
  • Tree
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 26. ๆ ‘็š„ๅญ็ป“ๆž„

้šพๅบฆ: ๐ŸŒ•๐ŸŒ—

้—ฎ้ข˜ๆ่ฟฐ

img_23.png


่งฃๆณ•

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        // ๆ€่ทฏ๏ผš
        // 
        if(B == null) {
            return false;
        }
        return mySol1(A, B);
    }

    private boolean mySol1(TreeNode root, TreeNode b) {
        // ้€’ๅฝ’็ปˆๆญขๆกไปถ
        if(root == null) {
            return false;
        }
        // System.out.println(root.val);
        if(mySol(root, b)) {
            return true;
        }
        return mySol1(root.left, b) || mySol1(root.right, b);
    }

    private boolean mySol(TreeNode a, TreeNode b) {
        // ้€’ๅฝ’็ปˆๆญขๆกไปถ
        if(b == null) {
            return true;
        }
        if(a == null) {
            return false;
        }
        if(a.val != b.val) {
            return false;
        }
        return mySol(a.left, b.left) && mySol(a.right, b.right);
    }
}

่พ“ๅ‡บ

img_22.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/10/10 ไธ‹ๅˆ8:43:48
่ดก็Œฎ่€…: liuxianzhishou