c 언어 판단 두 갈래 트리 대칭 귀속 여부
4553 단어 알고리즘 문제
사고방식: p는 루트의 왼쪽 아이를 가리키고 q는 루트의 오른쪽 아이를 가리킨다.p와 q의 값이 같은지 아닌지를 판단하면 p의 왼쪽 아이와 q의 오른쪽 아이가 같은지, p의 오른쪽 아이와 q의 왼쪽 아이가 같은지, 같은지 판단하면 계속 귀속된다.p와 q가 모두 비어 있을 때, 전체 두 갈래 나무가 이미 다 훑어보았고, 훑어보는 과정에서 p와 q의 값이 계속 같다면true로 돌아간다.주어진 두 갈래 나무의 구조는 다음과 같다.
struct TreeNode
{
int val;
struct TreeNode *left;
struct TreeNode *right;
};
bool fun(struct TreeNode* p,struct TreeNode* q)
{
if(NULL==p&&NULL==q) return true;
if(NULL==p||NULL==q) return false;
if(p->val!=q->val) return false;
bool L=fun(p->left,q->right);
bool R=fun(p->right,q->left);
return L&&R;
}
bool isSymmetric(struct TreeNode* root)
{
if(NULL==root) return true;
struct TreeNode *p=root->left;
struct TreeNode *q=root->right;
return fun(p,q);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[못 푼 문제] 백준 10989번sys.stdin.readline()을 사용하여 input의 시간을 줄였다. 또한 입력 가능한 수의 개수가 10,000,000개 이고 최대 입력 가능한 수가 10,000이기 때문에 모든 수를 입력 받아 리스트로 만들...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.