25. 이 진 트 리 두 개 를 입력 하여 B 트 리 가 A 트 리 의 하위 구조 인지 판단
9788 단어 데이터 구조
package java2019;
// , B A
public class Demo25 {
public static boolean HasSubtree(TreeNode root1,TreeNode root2){
boolean result = false;
// Tree1 Tree2 null, 。 false
if(root2!=null && root1!=null){
// Tree2
if(root1.val==root2.val){
// Tree2
result = doseTree1HaveTree2(root1,root2);
}
// , root , Tree2
if(!result){
result = HasSubtree(root1.left,root2);
}
// , root , Tree2
if(!result){
result = HasSubtree(root1.right,root2);
}
}
//
return result;
}
public static boolean doseTree1HaveTree2(TreeNode node1,TreeNode node2){
// Tree2 , true
if(node2 == null){
return true;
}
// Tree2 ,Tree1 。 false
if(node1 == null){
return false;
}
// , false
if(node1.val!=node2.val){
return false;
}
// ,
return doseTree1HaveTree2(node1.left,node2.left) &&
doseTree1HaveTree2(node1.right,node2.right);
}
public static void main(String[] args) {
TreeNode root1 = new TreeNode(5);
TreeNode n1 = new TreeNode(3);
TreeNode n2 = new TreeNode(10);
TreeNode n3 = new TreeNode(1);
TreeNode n4 = new TreeNode(4);
TreeNode n5 = new TreeNode(6);
TreeNode n6 = new TreeNode(11);
root1.left=n1;
root1.right=n2;
n1.left=n3;
n1.right=n4;
n2.left=n5;
n2.right=n6;
System.out.println(HasSubtree(root1,n5));
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.