검지offer-지그재그 순서로 두 갈래 나무 인쇄
1230 단어 검지offer
함수를 실현하여 지그재그 순서에 따라 두 갈래 나무를 인쇄합니다.
지그재그 순서로 두 갈래 나무를 인쇄하려면 두 개의 창고가 필요하다.우리가 어떤 줄의 결점을 인쇄할 때, 다음 층의 자결점은 상응하는 창고에 저장합시다.현재 인쇄된 것이 홀수층(첫째, 셋째)이면 왼쪽 결점을 저장하고 오른쪽 결점의 첫 번째 창고에 저장합니다.현재 짝수층 (둘, 넷) 을 치면 오른쪽 결점을 저장한 다음 왼쪽 결점을 두 번째 창고에 저장합니다.
struct BinaryTree
{
int data;
BinaryTree *left;
BinaryTree *right;
};
void print(BinaryTree *pRoot)
{
if(pRoot==NULL)
return;
stack level[2];
int cur=0;
int next=1;
level[cur].push(pRoot);
while(!level[0].empty()||!level[1].empty())
{
BinaryTree *pNode=level[cur].top();
level[cur].pop();
cout<data;
if(cur==0)
{
if(pNode->left!=NULL)
level[next].push(pNode->left);
if(pNode->right!=NULL)
level[next].push(pNode->right);
}
else
{
if(pNode->right!=NULL)
level[next].push(pNode->right);
if(pNode->left!=NULL)
level[next].push(pNode->left);
}
if(level[cur].empty())
{
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
20200326 - 검지offer 면접문제 27: 두 갈래 나무의 거울이솔 위 안에 28문제의 답안이 있는데 어떻게 꼬치는지 모르겠다.간단해....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.