๐๐ ๅๆ Offer 26. ๆ ็ๅญ็ปๆ
2022ๅนด10ๆ10ๆฅ
- algorithm
๐๐ ๅๆ Offer 26. ๆ ็ๅญ็ปๆ
้พๅบฆ: ๐๐
้ฎ้ขๆ่ฟฐ
่งฃๆณ
/**
* 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);
}
}