검지 Offer(58): 대칭적인 두 갈래 나무
4190 단어 검지 Offer
1. 제목 설명
두 갈래 나무가 대칭적인지 아닌지를 판단하는 함수를 실현하세요.만약 두 갈래 나무가 이 두 갈래 나무와 같은 거울이라면 대칭으로 정의하십시오.
2. 문제 풀이 사고방식
1) 비교 노드의 좌우 결점: a. 그 중 하나가 비어 있으면 비대칭이다.b. 모두 비어 있지 않으면 결점 값을 비교하고, 결점 값이 다르면 비대칭한다.2) 현재 결점의 좌우 결점이 같으면 왼쪽 나무의 오른쪽 결점과 오른쪽 나무의 왼쪽 결점, 왼쪽 나무의 왼쪽 결점과 오른쪽 나무의 오른쪽 결점을 비교한다.
3. 프로그래밍 실현 public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
if (pRoot == null) {
return true;
}
return comRoot(pRoot.left, pRoot.right);
}
private boolean comRoot(TreeNode pLeft, TreeNode pRight) {
// ,
if (pLeft == null) {
return pRight == null;
}
// , ,
if (pRight == null) {
return false;
}
// ,
if (pLeft.val != pRight.val) {
return false;
}
//
//
return comRoot(pLeft.right, pRight.left) && comRoot(pLeft.left, pRight.right);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[검지 Offer] 두 갈래 트리 재구성(전순 시퀀스와 중간 시퀀스, 두 갈래 트리 재구성)
두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하십시오.
이 두 갈래 나무를 다시 만드십시오.입력한 앞 순서와 중간 순서의 결과에 중복된 숫자가 없다고 가정하십시오.예를 들어 앞 순서 반복 시퀀스 {1,2,4,7...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
1) 비교 노드의 좌우 결점: a. 그 중 하나가 비어 있으면 비대칭이다.b. 모두 비어 있지 않으면 결점 값을 비교하고, 결점 값이 다르면 비대칭한다.2) 현재 결점의 좌우 결점이 같으면 왼쪽 나무의 오른쪽 결점과 오른쪽 나무의 왼쪽 결점, 왼쪽 나무의 왼쪽 결점과 오른쪽 나무의 오른쪽 결점을 비교한다.
3. 프로그래밍 실현 public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
if (pRoot == null) {
return true;
}
return comRoot(pRoot.left, pRoot.right);
}
private boolean comRoot(TreeNode pLeft, TreeNode pRight) {
// ,
if (pLeft == null) {
return pRight == null;
}
// , ,
if (pRight == null) {
return false;
}
// ,
if (pLeft.val != pRight.val) {
return false;
}
//
//
return comRoot(pLeft.right, pRight.left) && comRoot(pLeft.left, pRight.right);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[검지 Offer] 두 갈래 트리 재구성(전순 시퀀스와 중간 시퀀스, 두 갈래 트리 재구성)
두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하십시오.
이 두 갈래 나무를 다시 만드십시오.입력한 앞 순서와 중간 순서의 결과에 중복된 숫자가 없다고 가정하십시오.예를 들어 앞 순서 반복 시퀀스 {1,2,4,7...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
if (pRoot == null) {
return true;
}
return comRoot(pRoot.left, pRoot.right);
}
private boolean comRoot(TreeNode pLeft, TreeNode pRight) {
// ,
if (pLeft == null) {
return pRight == null;
}
// , ,
if (pRight == null) {
return false;
}
// ,
if (pLeft.val != pRight.val) {
return false;
}
//
//
return comRoot(pLeft.right, pRight.left) && comRoot(pLeft.left, pRight.right);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[검지 Offer] 두 갈래 트리 재구성(전순 시퀀스와 중간 시퀀스, 두 갈래 트리 재구성)두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하십시오. 이 두 갈래 나무를 다시 만드십시오.입력한 앞 순서와 중간 순서의 결과에 중복된 숫자가 없다고 가정하십시오.예를 들어 앞 순서 반복 시퀀스 {1,2,4,7...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.