public class SubTreeConstruct26_ {
static class Node {
int val;
Node left;
Node right;
public Node(int val){
this.val = val;
}
@Override
public String toString() {
return "Node{" +
"val=" + val +
", left=" + left +
", right=" + right +
'}';
}
}
public static void main(String[] args) {
Node root = new Node(8);
Node node02 = new Node(8);
Node node03 = new Node(7);
Node node04 = new Node(9);
Node node05 = new Node(2);
Node node06 = new Node(4);
Node node07 = new Node(7);
root.left = node02;
root.right = node03;
node02.left = node04;
node02.right = node05;
node05.left = node06;
node05.right = node07;
Node sub = new Node(8);
System.out.println(isSub(root, sub));
}
private static boolean isSub(Node root, Node sub) {
boolean result = false;
if (root != null && sub != null) {
if (root.val == sub.val) {
result = isSub2(root, sub);
}
if (!result) {
result = isSub(root.left, sub);
}
if (!result) {
result = isSub(root.right, sub);
}
}
return result;
}
private static boolean isSub2(Node root, Node sub) {
if (root == null)
return false;
if (sub == null)
return true;
if (root.val != sub.val)
return false;
return isSub2(root.left, sub.left) && isSub2(root.right, sub.right);
}
}
剑指offer26 树的子结构 Java
猜你喜欢
转载自blog.csdn.net/weixin_43065507/article/details/99335989
今日推荐
周排行