두 갈래 나무가 같은지 아닌지를 판단하다
사고방식: 귀속과 교체
반복:
public static boolean isSameRec(TreeNode root1,TreeNode root2){
if(root1 == null && root2 == null){
return true;
}else if(root1 == null || root2 == null){
return false;
}else if(root1.val != root2.val){
return false;
}
boolean left = isSameRec(root1.left,root2.left);
boolean right = isSameRec(root1.right,root2.right);
return left&right;
}
교체: 교체는 주의해야 한다. 두 개의 보조 창고를 빌렸는데 주의해야 할 것은 어떤 노드의 왼쪽 아이나 오른쪽 아이가null이면 창고에 추가해야 한다는 것이다.
public static boolean isSameTree(TreeNode root1,TreeNode root2){
if(root1 == null && root2 == null){
return true;
}else if(root1 == null || root2 == null){
return false;
}else if(root1.val != root2.val){
return false;
}
Stack stack1 = new Stack();
Stack stack2 = new Stack();
stack1.push(root1);
stack2.push(root2);
while(!stack1.isEmpty() && !stack2.isEmpty()){
TreeNode n1 = stack1.pop();
TreeNode n2 = stack2.pop();
if(n1 == null && n2 == null){
continue;
}
else if(n1 != null && n2 != null && n1.val == n2.val){
stack1.push(n1.left);
stack1.push(n1.right);
stack2.push(n2.left);
stack2.push(n2.right);
}else {
return false;
}
}
return true;
}
전재 대상:https://www.cnblogs.com/lfdingye/p/7365479.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.